具有身份验证的Firebase快照侦听器

时间:2019-12-24 17:20:59

标签: javascript firebase google-cloud-firestore firebase-authentication

我很抱歉,如果以前曾问过这个问题。

我已经搜索了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
})

还是以上都不是?

1 个答案:

答案 0 :(得分:1)

这都是添加快照侦听器的有效方法,但是如果您具有persistence本地会话的登录用户,则无需每次添加authchangeState侦听器;您可以直接使用第二种方法