确认是否正确设置Facebook和Google登录。在开发和测试环境下可能工作正常,但在生产环境中可能存在不同的问题。
确认Firebase配置是否正确。确保正确配置Firebase Authentication和将Facebook和Google Provider Credentials添加到Firebase控制台中。
检查签名证书和密钥是否正确。确保使用与先前正确工作的版本相同的签名证书和密钥。如果更改了签名证书和密钥,则需要更新Firebase控制台中的SHA-1指纹。
尝试手动将构建上传到Google Play Console。如果Facebook和Google登录在Google Play Console版本中工作正常,则问题可能是与Firebase App Distribution上传有关。如果手动上传可以解决问题,则需要与Firebase支持团队联系以获取解决方案。
代码示例:
如果您的问题与Firebase配置有关,可以使用以下代码示例:
// Initialize Firebase Auth FirebaseAuth mAuth = FirebaseAuth.getInstance();
// Configure Google Sign In GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.default_web_client_id)) .requestEmail() .build();
// Initialize Google Sign In GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
// Configure Facebook Sign In CallbackManager mCallbackManager = CallbackManager.Factory.create(); LoginButton mFacebookSignInButton = findViewById(R.id.facebook_sign_in_button); mFacebookSignInButton.setReadPermissions("email", "public_profile");
// Facebook Sign In Callback
mFacebookSignInButton.registerCallback(mCallbackManager, new FacebookCallback
@Override
public void onCancel() {
Log.d(TAG, "facebook:onCancel");
// ...
}
@Override
public void onError(FacebookException error) {
Log.d(TAG, "facebook:onError", error);
// ...
}
});
// Facebook Token Handle private void handleFacebookAccessToken(AccessToken token) { Log.d(TAG, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task