javascript - 在firebase auth中将用户设为null
问题描述
我正在尝试收听文档中的更改,但出现此错误
Uncaught TypeError: Cannot read property 'uid' of null
这是我的 JavaScript 代码
var user = auth.currentUser;
db.collection('user-intro').doc(user.uid).onSnapshot(function(doc){
console.log(doc.data());
})
我错了
解决方案
您auth.currentUser
在用户登录之前获取用户。
如果用户刚刚登录,或者您刷新页面,通常会发生这种情况。虽然 Firebase 在页面重新加载时恢复身份验证状态,但这需要一些时间,因为它需要根据服务器检查凭据。
为确保您的代码仅在身份验证状态恢复后运行,您需要将其包装在onAuthStateChanged
处理程序中:
firebase.auth().onAuthStateChange(function(user) {
if (user) {
db.collection('user-intro').doc(user.uid).onSnapshot(function(doc){
console.log(doc.data());
})
}
})
推荐阅读
- python - 作者频道名称
- python-3.x - 不兼容的形状:[128,37] 与 [128,34]
- kubernetes - 如何为命名空间中的 pod 提供管理员访问权限?
- python - django 服务器没有显示任何结果
- android - Android CardView:为什么角落不圆?
- asp.net - 包含重复数据的 ASP.NET 表和标识表
- android - 有没有办法在Android上拥有一个后台服务,它可以在准确的时间执行网络操作并且不会被Android杀死?
- python - Python中的非二进制文件
- c - 为什么 *y = z 将 y 绑定到内存地址,但 *y = *x 只取一个值?
- c++ - 找出 3 个数字中最小的一个。(作业)