我有一个使用cloud_firestore软件包的Flutter应用程序,它在Android和iOS上运行良好。但是我的数据库是“允许读,写:如果为true”,因此Google不断提醒我解决此不安全问题。我做到了:
我认为我一切都很好。在应用程序中,似乎是这样:
print("User ${(await FirebaseAuth.instance.currentUser()).email})");
这给了我我帐户的邮件。我也有一个onAuthStageChanged侦听器,我得到了我所期望的。所以我想登录确实有效。
但是如果我尝试进行数据库访问,例如使用.setData()时,出现错误
W / Firestore(4411):(19.0.0)[Firestore]:写失败于...:状态{code = PERMISSION_DENIED,描述=权限不足或权限不足,原因=空}
它在找我,好像auth软件包没有正确通知firestore软件包。在日志中,我看到了
D / FirebaseAuth(5698):向id令牌侦听器通知有关用户(...)。
我希望出现类似“ Firestore:已收到令牌...”的消息,但这不会出现。
我必须注意初始化顺序吗?我的是
我在装有Android 8和9的某些三星和OnePlus设备上尝试过。
有人暗示某人吗?
答案 0 :(得分:0)
我让它开始运行!!使用了Flutter & Firebase - using firebase_storage along with firebase_auth
的提示访问数据库时,我使用了指向
所创建的Firestore的指针static Firestore _firestore;
...
_firestore = Firestore(app: ...);
后来我用
await _firestore.collection(...)...setData(...);
但是,登录后,Firestore似乎已更改。当我写的时候有效:
await Firestore.instance.collection...setData
有趣!!