ewi*_*ard 1 collections firebase react-native google-cloud-firestore react-native-firebase
我有这个代码:
firebase.firestore().collection('items').get()
.then(snapshot => {
Alert.alert(JSON.stringify(snapshot._docs));
snapshot.forEach(doc => {
Alert.alert(doc.id, '=>', doc.data());
});
})
.catch(err => {
Alert.alert('Error getting documents', err);
});
Run Code Online (Sandbox Code Playgroud)
将Alert.alert(JSON.stringify(snapshot._docs))返回一个空数组-所以它没有找到任何文件。此集合中有一个文档:
是因为我使用电子邮件地址作为文档 ID 吗?
更新
显示我的数据库结构的其余部分的图像:
我正在尝试搜索PxlmyvjklhTOADngsSQg下userItems(以及其他会去那里的对象)下的文档字段。
更新
这基本上就是我想要做的,只是在理论上我想使用通配符.doc(this.state.user.email):
firebase.firestore().collection('items').doc(**wildcard**).collection('userItems').where("barcode", "==", this.state.text)
但我知道这是不可能的firebase,所以我试图获取所有的items,然后在成功检索后解析它们。
首先,您使用私有属性访问快照对象:
snapshot._docs
Run Code Online (Sandbox Code Playgroud)
这不是正确的做法。您从查询中返回的快照是一个QuerySnapshot对象,您应该使用 API 文档来了解如何处理它。如果您需要快照中的文档数组,请使用其docs属性。
其次,您的屏幕截图实际上显示项目集合中没有文档。请注意,由电子邮件地址标识的文档以斜体显示。这意味着它实际上并不是一个文档——它只是一个“幻影”文档,您用来在它下面组织一个名为userItems.
当您查询一个集合时,您只会得到该集合中直接存在的文档,而没有它们的文档子集合。以这种方式,查询被称为“浅层”。尝试创建一个包含字段的实际文档items,然后查询集合。
| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |