У меня есть приложение, которое использовало Google SignIn для аутентификации, и оно работает нормально.Я реализовал Facebook Войти, и он входит в систему правильно.Это даже отображается в моей консоли разработчиков Facebook, и я могу получить имя пользователя, адрес электронной почты, изображение после входа в систему, но вошедший в систему пользователь не может получить доступ к базе данных Firebase.Аутентификация Facebook включена в консоли Firebase, но аутентифицированный пользователь не отображается на вкладке «Прошедшие проверку» в консоли Firebase.Кто-нибудь может мне помочь?
Код
callbackManager = CallbackManager.Factory.create();
mFacebookLoginButton.setReadPermissions(Arrays.asList("email"));
mFacebookLoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d("Please...", "1");
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
FirebaseAuth.getInstance().getCurrentUser();
String f = Profile.getCurrentProfile().getFirstName();
String l = Profile.getCurrentProfile().getLastName();
String mName;
if (!f.equals(l))
mName = Profile.getCurrentProfile().getFirstName()+" "+Profile.getCurrentProfile().getLastName();
else
mName = Profile.getCurrentProfile().getFirstName();
try {
String mEmail = object.getString("email");
addData(null, convert(mName), convert(mEmail));
Toast.makeText(getApplicationContext(), "Successfully Signed In", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
Log.d("Please...", e.getMessage());
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(),"Something Went Wrong",Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException exception) {
Toast.makeText(getApplicationContext(),exception.getMessage(),Toast.LENGTH_SHORT).show();
}
});
В addData ()
Log.d("PROBLEM", "IN");
mDatabaseReference.child("e").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d("PROBLEM", "INNN");
..............
..............
.........
Журнал показывает до "IN", что означает, что он не может получить доступ к базе данных, но когда я вхожу из Googleэтой проблемы не существует