javascript - 具有身份验证的 Firebase 快照侦听器
问题描述
如果以前有人问过这个问题,我深表歉意。
我已经通过 stackoverflow 进行了搜索,但没有找到我经常遇到的问题的答案。我正在开发一些使用 Firebase 开发的项目。
我经常有这样的数据结构:
collection A:
- userID
- attribute1
- attribute2
(and so on)
然后在客户端上声明一些快照侦听器。我的问题是关于我应该在哪里声明我的快照监听器。
如果我的安全规则允许读取和写入集合 A(包括创建、更新和删除)如果userID
文档的字段与登录用户的 id 相同,我应该如何声明我的快照侦听器?
我应该执行以下操作吗?
firebase.auth().onAuthStateChanged((user)=>{
firebase.firestore().collection('collectionA').where('userID', '==', firebase.auth().currentUser.uid).onSnapshot((snapshot)=>{
// DO STUFF HERE
}
)
})
要不就
firebase.firestore().collection('collectionA').where('userID', '==', firebase.auth().currentUser.uid).onSnapshot((snapshot)=>{
// DO STUFF HERE
})
或者以上都不是?
解决方案
两者都是添加快照侦听器的有效方法,但是如果您有一个登录用户持久性为local或session,则无需每次都添加 authchangeState 侦听器;可以直接使用第二种方法
推荐阅读
- python - Python - 延迟后运行异步函数并且不阻塞其他代码
- pine-script - 预计趋势不会发生变化,具体取决于我们为多时间框架趋势选择的时间框架
- python - TKinter:在 For 循环之后调整画布中缩略图的大小
- python-3.x - 如何访问s3中子存储桶内的文件?
- javascript - JavaScript 在列表中添加 List 元素的解决方案是什么?
- objective-c - 为什么 NSView 原屏幕坐标与其 NSWindow 原屏幕坐标不同?
- node.js - 如何使用 OIDC 提供程序在 /token 端点中获取访问令牌和刷新令牌
- reactjs - 如何更新 React 选择列表
- orm - 急切加载在 sequelize orm 中不起作用
- python - PHP解析python脚本的dict输出