首页 > 解决方案 > 使用带有 firestore get().data() 的 react native 返回 undefined

问题描述

我只是想知道我使用带有 react-native 的 firebase 获取数据的方式有什么问题

为什么这行得通

const res = await firestore().collection('users').doc(uid).get();
const data = res.data().todos.todo.work

但是这样我就不确定了

const res = await firestore().collection('users').doc(uid).collection('todos').doc('todo').get();
const data = res.data().work

我也试过这个,但也没有定义

const res = await firestore().collection('users').doc(`${uid}/todos/todo`).get();
const data = res.data().work

我到底错过了什么?

标签: javascriptnode.jsfirebasereact-nativegoogle-cloud-firestore

解决方案


如果没有看到您的数据库,我只能猜测您只有一个文档并且没有实际的子集合。看起来您的单个文档在其中包含称为“todo”的嵌套字段。无法使用特殊语法单独获取文档中的嵌套字段。您一次只能阅读整个文档。

Firestore 中的嵌套字段不是子集合。它们只是单个文档中的字段。第二个代码示例中不起作用的语法是尝试读取子集合中的文档,而该子集合根本不存在。

我建议查看文档以更好地了解字段和子集合的工作方式,以及用于访问其中任何一个的代码。


推荐阅读