我很抱歉,如果以前曾问过这个问题。
我已经搜索了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
})
还是以上都不是?
答案 0 :(得分:1)
这都是添加快照侦听器的有效方法,但是如果您具有persistence为本地或会话的登录用户,则无需每次添加authchangeState侦听器;您可以直接使用第二种方法