【发布时间】:2019-12-19 06:08:24
【问题描述】:
我将 Firestore 与实时数据库结合使用,以便为我的应用程序提供用户存在系统。
更新:我关注的文章
在我在这里使用此代码的一种方法中:
const usersRef = this.$fireStore.collection('users').doc(uid)
const whoIsOnlineRef = this.$fireDb.ref('.info/connected')
whoIsOnlineRef.on('value', (snapshot) => {
this.$fireDb.ref(`/status/${uid}`)
.onDisconnect()
.set('offline')
.then(() => {
usersRef.set({ online: true }, { merge: true })
this.$fireDb.ref(`/status/${uid}`).set('online')
})
})
然而,.set 方法给了我标题中提到的错误,我不太明白为什么。我只是将一个 javascript 对象传递给 .set 方法,这在技术上应该可以工作。
你能发现代码有什么问题吗?
【问题讨论】:
-
我猜您无法在 onDisconnect 处理程序中更改 Firestore。当连接断开时,该处理程序将有效地排队 RTDB 中的一些更改。 RTDB 对 Firestore 一无所知。
-
让我给你一些更多的上下文,否则可能会造成混淆
-
我确实读过,然后也读到了这个:blog.campvanilla.com/… 据我所知,它应该可以工作。我不明白为什么它不会
-
您没有使用 Cloud Functions 代理从 RTDB 到 Firestore 的更改。您尝试仅在客户端上执行此操作,但这是行不通的。
标签: javascript firebase firebase-realtime-database google-cloud-firestore