我的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身份验证就好了 . 我已经阅读了其他几个关于此的堆栈溢出帖子,但我觉得我已经尝试了一切 . 任何帮助,将不胜感激!
UPDATE:
在发布版本中,如果我没有设置任何读/写规则,我可以读取和写入数据库 . 我仍然无法创建FirebaseUser . 我可以创建GoogleSignInAccount,但这不会创建Firebase用户 .
1 回答
我设法让它运作起来 . 我刚刚将所有依赖项更新到最新版本并针对最新版本的android,然后使用此guide更新了我的项目,并使用与此example相同的方式对Firebase进行了身份验证 .
这些是我的依赖:
希望这有助于某人!