0

useFirestoreConnect用来从firebase获取'todos'中的所有数据。

useFirestoreConnect([
    {
      collection: 'todos',
    },
  ]);
const todos = useSelector((state: any) => state.firestore.data.todos)

我只想获取包含用户 uid 的数据。上的文档useFirestoreConnect仅显示如何根据文档 ID 获取数据。

useFirestoreConnect([
  {
    collection: 'todos',
    doc: todoId
  }
])
const todo = useSelector(
  ({ firestore: { data } }) => data.todos && data.todos[todoId]

根据我在这里看到的示例,我尝试了以下方法:

useFirestoreConnect([
  {
    collection: 'todos',
    where: ["owner", "==", auth.uid]
  },
]);
const todos = useSelector((state: any) => state.firestore.data.todos)

结果是:

FirebaseError:使用无效数据调用函数 Query.where()。不支持的字段值:未定义

useFirestoreConnect([
  {
    collection: 'todos',
    query: ["owner", "==", auth.uid]
  },
]);
const todos = useSelector((state: any) => state.firestore.data.todos)

导致类型错误:

类型'{集合:字符串;查询:任何[];}' 不可分配给类型“字符串”。

4

1 回答 1

-1

我设法弄清楚了。auth.uid未定义。我刚刚传入了正确的身份验证 ID,它起作用了。这是添加参数的正确方法。

useFirestoreConnect([
  {
    collection: 'todos',
    where: ["owner", "==", auth.uid]
  },
]);
const todos = useSelector((state: any) => state.firestore.data.todos)
于 2020-11-13T10:34:58.420 回答