我的Android Flutter应用已使用Firebase身份验证进行Google登录。在调试模式下一切都很好,但在发布模式下失败。我已在Firebase控制台中为调试和发布密钥库添加了SHA-1指纹,并已更新到最新的google-services.json。
问题似乎是我从未获得Firebase用户。此方法始终返回null:
Future<FirebaseUser> _getCurrentUser() async {
FirebaseAuth firebaseAuth = FirebaseAuth.instance;
if (firebaseAuth.currentUser() != null) {
return await firebaseAuth.currentUser();
}
return null;
}
codelabs示例也没有工作。它正在返回GoogleSignInUser,但它没有在控制台中创建Firebase用户:
Future<GoogleSignInAccount> _ensureLoggedIn() async {
GoogleSignInAccount user = _googleSignIn.currentUser;
if (user == null) user = await _googleSignIn.signInSilently();
if (user == null) {
user = await _googleSignIn.signIn();
analytics.logLogin();
}
if (_auth.currentUser == null) {
GoogleSignInAuthentication credentials =
await _googleSignIn.currentUser.authentication;
await _auth.signInWithGoogle(
idToken: credentials.idToken,
accessToken: credentials.accessToken,
);
}
return user;
}
我之前在原生Android应用中实施了Firebase身份验证就好了。我已经阅读了其他几个关于此的堆栈溢出帖子,但我觉得我已经尝试了一切。任何帮助将不胜感激!
更新
在发布版本中,如果我没有设置任何读/写规则,我可以读取和写入数据库。我仍然无法创建FirebaseUser。我可以创建GoogleSignInAccount,但这不会创建Firebase用户。