如何在不未定义的情况下将 auth uid 作为查询参数传递?
How to pass auth uid as a query parameter without getting undefined?
我正在使用 react-query-firebase 库对文档进行查询。
根据文档,这是您进行查询的方式:
const ref = doc(firestore, 'users', id);
const product = useFirestoreDocument(["users", id], ref);
一切 工作 当我像这样手动设置 id:
const id = "pW5CizOJOpXezr5lGGsh";
但是我想动态设置 uid 并且我也在使用 auth state hook:
const user = useAuthUser(["user"], auth);
const ref = doc(firestore, "users", user.data.uid);
问题是在页面加载时用户初始化为未定义,我需要等待一瞬间 user.data.uid 来填充,因此我得到TypeError: Cannot read property 'indexOf' of undefined
有没有一种方法可以跳过查询,直到用户完成加载,然后才进行查询。
使用 react-query,您通常只需 disable
查询,直到您通过 enabled
属性:
获得所有依赖项
useQuery(["users", id], ref, { enabled: Boolean(id) }
我正在使用 react-query-firebase 库对文档进行查询。
根据文档,这是您进行查询的方式:
const ref = doc(firestore, 'users', id);
const product = useFirestoreDocument(["users", id], ref);
一切 工作 当我像这样手动设置 id:
const id = "pW5CizOJOpXezr5lGGsh";
但是我想动态设置 uid 并且我也在使用 auth state hook:
const user = useAuthUser(["user"], auth);
const ref = doc(firestore, "users", user.data.uid);
问题是在页面加载时用户初始化为未定义,我需要等待一瞬间 user.data.uid 来填充,因此我得到TypeError: Cannot read property 'indexOf' of undefined
有没有一种方法可以跳过查询,直到用户完成加载,然后才进行查询。
使用 react-query,您通常只需 disable
查询,直到您通过 enabled
属性:
useQuery(["users", id], ref, { enabled: Boolean(id) }