【发布时间】:2020-06-24 06:59:18
【问题描述】:
我们已经开发并测试了一个 Flutter 应用。一切都按预期工作。我们将应用部署到商店并获得了一些用户。
几个月后,我们收到了用户的投诉,称他们在打开应用时丢失了所有数据。
我相信数据没有丢失,只是他们的匿名帐户更改为新的匿名帐户。
丢失数据的用户有什么共同点:
- iOS 设备(不确定是否相关),
- 至少几天没有使用该应用。
我们的用户身份验证流程:
- 应用启动,
- 所有服务都在
main()方法中初始化, -
AuthService初始化final _auth = FirebaseAuth.instance;并调用loginUser(), -
loginUser()方法执行:
void loginUser() async {
FirebaseUser user = await _auth.currentUser();
if (user == null) {
AuthResult result = await _auth.signInAnonymously();
user = result.user;
}
IdTokenResult userToken = await user.getIdToken();
print('USER');
print(' UID: ${user.uid}');
print(' Token: ${userToken.token}');
print(' Expires: ${userToken.expirationTime}');
}
我们正在使用版本:
flutter: v1.12.13+hotfix.7firebase_core: ^0.4.0+8firebase_auth: ^0.14.0+5
注册用户没有遇到任何问题。
问题:
-
this._auth.currentUser()在什么情况下会返回 null? - 匿名帐户是否有到期日?
- 有没有办法重现此问题?
- 有人遇到过同样的问题吗?
- 我们做错了什么?
- 如何避免匿名用户出现这种情况?
【问题讨论】:
标签: ios firebase flutter firebase-authentication