在Cloud Firestore中实现呈现时UID来自哪里?



我搜索了很长时间的存在主题,我找到了以下文档

https://firebase.google.com/docs/firestore/solutions/presence。

我按照文档做了所有必要的设置,但是有些地方我不明白。

在前面的链接中,特别是关于Firebase函数的.js code,他们写了以下

// Create a new function which is triggered on changes to /status/{uid}
// Note: This is a Realtime Database trigger, *not* Firestore.
exports.onUserStatusChanged = functions.database.ref('/status/{uid}').onUpdate(
async (change, context) => {...etc...}

我需要了解他们如何在.ref('/status/{uid}')中获得uid值??

我知道status是uid子的父级,但他们如何在.ref('/status/{uid}')中访问它的值

我花了三个小时检查文档,但我不明白他们是如何得到uid值的

关于使用云函数和实时数据库在Firestore上构建状态的解决方案指南中的第一个代码片段显示了将状态信息写入实时数据库的代码:

// Fetch the current user's ID from Firebase Authentication.
var uid = firebase.auth().currentUser.uid;
// Create a reference to this user's specific status node.
// This is where we will store data about being online/offline.
var userStatusDatabaseRef = firebase.database().ref('/status/' + uid);
...

因此,这段代码确定已登录用户的UID,然后将状态信息写入Realtime Database中的路径/status/$uid。然后,这将触发您所包含的Cloud Function,它将在这里选择路径的UID部分:

exports.onUserStatusChanged = functions.database.ref('/status/{uid}').onUpdate(
...

因此,每当用户更新状态节点时,这个Cloud Function就会触发,并获取客户端已经写入的uid值,以便它可以将相同UID下的状态信息写入Firestore。

最新更新