javascript - 如何使用 RxFire 检查是否已在 Firestore 中创建文档
问题描述
在我的 React 应用程序中,我想在更新我的 UI 之前检查后台 firebase 函数是否已在 Firestore 中创建了文档。因此,我使用 RxFire 中的 docData 函数来订阅特定的“即将从背景函数创建”文档中的更改:
const davidDocRef = db.doc('users/david');
// meantime, a firebase function creates "users/david" doc in the background
// I am observing for changes to the firestore doc in my React Component:
useEffect(() => {
docData(davidDocRef,'uid').subscribe(userData => setUserId(userData.uid));
...
// I then check that orgId is not null by assuming that I will get back a doc.id after it has been created it in Firestore
问题是 userData.uid 总是返回“david”,不管在 Firestore 中创建的文档是什么。我究竟做错了什么?它似乎是从我在参考中设置的路径返回 uid,而不是在 firestore 中已经(或应该已经)创建的实际文档路径。当我将引用更改为查找“users/foo”时,userData.uid 仍然返回“foo”而不是 undefined 或通过错误返回。
在这种情况下,我可以改为查找 userData.name。这实际上是有效的,因为如果文档没有存储在 Firestore 中,我会得到“未定义”,如果有的话,我会得到“未定义”,但我希望上面的示例能够以类似的方式工作。
解决方案
推荐阅读
- java - 合并通量的 Spring Webflux 类型安全性
- java - 获取 PDFBox 中的文本颜色
- spring-batch - Spring批处理-预加载块相关数据
- python-2.7 - 想要将数据推入/拉出 SalesForce Accounts/leads 从/到我的外部 Web 应用程序
- php - 如何将 PHP 数组转换为 json 字符串
- php - 致命错误:类:找不到 SQLi - 无法将 mySqli 连接到 WAMP
- angular - 清除输入下方的输入字段已更改
- mysql - 返回中间字符串并计数
- c++ - 将位图设置为 CStatic 对象
- python - python:过滤具有特定值中匹配字符串的字典