【发布时间】:2020-05-22 03:24:18
【问题描述】:
我正在使用 React 和 Firebase 创建一个小应用程序。我正在尝试检查与我的 firestore 数据库中的用户相关的文档,其中文档 ID 与 firebase auth 生成的 uid 相同,但由于某些原因,.get() 承诺保持未决状态,导致 .exists( ) 函数引发错误(TypeError: userDoc.exists 不是函数)。我最初认为这是我的数据库规则有问题,所以我更改了它们,以便任何人都可以读取和写入数据库(我知道不安全,规则稍后会更改)。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
即使在此之后,我仍然无法检索文档。下面是我的代码。
let userDoc = db.collection('Users').doc(currentUser.uid)
console.log(userDoc);
userDoc = userDoc.get();
console.log(userDoc);
userDoc = userDoc.exists();
db 是使用创建的 Firestore 对象
admin.initializeApp()
db = admin.firestore()
和let userDoc = db.collection('Users').doc(currentUser.uid) 产生一个 DocumentReference 对象。该文档存在于 Firestore 中,但由于某种原因,我无法在我的 react 应用程序中访问它。我已经编写了一个云函数,也可以与 firestore 一起使用,并且它在读取和写入我的数据库时没有问题。我觉得我在这里遗漏了一些东西,非常感谢任何帮助。
【问题讨论】:
-
我建议从文档中的 JavaScript 示例开始。 firebase.google.com/docs/firestore/query-data/…
标签: javascript reactjs firebase google-cloud-firestore