【问题标题】:How to add query parameters to useFirestoreConnect如何将查询参数添加到 useFirestoreConnect
【发布时间】:2020-11-13 09:48:22
【问题描述】:

我正在使用 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)

导致类型错误:

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

【问题讨论】:

    标签: typescript firebase redux redux-firestore


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-30
      • 2016-01-04
      • 1970-01-01
      • 2019-12-30
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多