javascript - Firebase 似乎试图在身份验证序列运行之前开始侦听快照更新。有任何解决这个问题的方法吗?
问题描述
似乎在firebase能够获取当前用户身份验证数据(例如用于登录的电子邮件)之前,它会尝试调用
firestore.collection("users").doc(firebase.auth().currentUser.email).onSnapshot(function(doc) {
console.log("check")
});
问题是,它需要当前用户的电子邮件才能从数据库中访问集合中的正确文档。
有什么办法可以规避这个并等到 currentUser 定义?
解决方案
如果您的代码依赖于经过身份验证的用户,您应该在onAuthStateChanged
回调中运行它。例如:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
firestore.collection("users").doc(firebase.auth().currentUser.email).onSnapshot(function(doc) {
console.log("check")
});
}
});
推荐阅读
- ubuntu - jetson nano 上的 valgrind 错误 m_execontext.c:411 (record_ExeContext_wrk2)
- pandas - Pandas groupby 逗号分隔值
- asp.net-core - 事件网格触发器和 http 触发器有什么区别?
- ruby-on-rails - Rails/Angular CSRF 令牌
- c++ - CComBSTR::Detach 和 m_str 不同
- javascript - 即使验证要求无效,数据仍在发送,解决此问题的最佳方法是什么?
- kubernetes - 从 redis 容器中获取变量的访问权限
- c# - 我可以从 .NET 中未管理的 .dll 或 .exe 读取文件属性吗
- sql - 从 pgAdmin4 导出的 csv 文件中保留索引列
- sql - 为什么执行每一行时的当前时间常数(使用横向连接)?