У меня проблема с аутентификацией при fireback.Вход в Facebook работает нормально для каждого пользователя Facebook.После входа в Facebook мы используем токен Facebook для авторизации в Firebase.Я попытался войти с учетной записью разработчика или тестовой учетной записью, созданной на учетной записи разработчика Facebook, после чего мы можем войти также с помощью FB-аутентификации firebase.Но для другой учетной записи fb аутентификация firebase не работает (логин fb работает нормально для всех учетных записей fb). Проблема возникает только после входа в систему fb.Для других учетных записей fb (кроме учетной записи разработчика и тестовой учетной записи, созданной в приложении для разработчиков) после успешного входа в систему fb, когда код пытается аутентифицировать firebace, я не получаю никаких сообщений об ошибках в журналах и исключении try catch.Пожалуйста, помогите мне решить эту проблему.
private void fbLoginRequest(CallbackManager callbackManager) {
loginmanager = LoginManager.getInstance();
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if (accessToken != null) {
loginmanager.logOut();
}
loginmanager.logInWithReadPermissions(activity,Arrays.asList("public_profile","email"));
loginmanager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(),new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object,GraphResponse response) {
UserNormal userDetail = new UserNormal();
try {
email = object.getString("email");
id = object.getString("id");
name = object.getString("name");
first_name = object.getString("first_name");
last_name = object.getString("last_name");
JSONObject picture = object.getJSONObject("picture");
final JSONObject data = picture.getJSONObject("data");
profile_img_url = data.getString("url");
}
catch (JSONException e) {
e.printStackTrace();
}
userDetail.setFirstName(first_name);
userDetail.setLastName(last_name);
userDetail.setCustomer_email(email);
userDetail.setCustomer_name(name);
userDetail.setCustomer_photo(profile_img_url);
logInWithFbOnFireBase(loginResult.getAccessToken(),userDetail);
alertDialog.dismiss();
}
});
Bundle parameters = new Bundle();
parameters.putString("fields","id,name,email,first_name,last_name,picture.width(300).height(300)");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
alertDialog.dismiss();
HomeActivity.getInstance().viewPager.setCurrentItem(0);
}
@Override
public void onError(FacebookException error) {
}
});
}
public void logInWithFbOnFireBase(AccessToken token,final UserNormal userDetail) {
WebServices.getInstance().handleFbAccessTocken(activity,token,new FbAccessTokenHandler() {
@Override
public void OnSuccess(Task<AuthResult> task) {
}
@Override
public void OnFail(String message) {
view.showFeedbackMessage(message);
}
});
}
public void handleFbAccessTocken(Activity activity,AccessToken token, final FbAccessTokenHandler handler) {
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
BorideApplication.mAuth.signInWithCredential(credential).addOnCompleteListener(activity, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> task) {
if (task.isSuccessful()) {
handler.OnSuccess(task);
}
else {
handler.OnFail(task.getException().getMessage());
}
}
});
}