我面临着火灾认证的问题 . Facebook登录适用于每个Facebook用户 . 在facebook登录后,我们使用Facebook令牌进行Firebase facebook身份验证 . 我曾尝试使用开发者帐户登录或在Facebook开发者帐户中创建测试帐户,然后我们也可以登录firebase FB authencation . 但对于其他fb帐户,firebase身份验证不起作用(fb登录适用于所有fb帐户) . 仅在fb登录后才会出现问题 . 对于其他fb accouts(在开发人员应用程序中创建的开发人员帐户和测试帐户除外),在代码尝试验证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());
}
}
});
}