gpt4 book ai didi

javascript - 如何使用 firestore orderBy 但同时添加未定义的值

转载 作者:行者123 更新时间:2023-12-02 19:13:01 24 4
gpt4 key购买 nike

我从 firestore 中获取了按trained_on desc 订购的锻炼。

  useEffect(() => {
let user = firebase.auth().currentUser;
const database = firebase.firestore();
const unsubscribe = database
.collection("workouts")
.where("uId", "==", user.uid)
.orderBy("trained_on", "desc")
.onSnapshot((snapshot) => {
setWorkouts(
snapshot.docs.map((doc) => ({ id: doc.id, ...doc.data() }))
);
});

return () => {
unsubscribe();
};
}, []);

这会忽略未设置trained_on 的条目。当我创建新的锻炼时,没有“trained_on”。

如何添加条目,其中trained_on也未定义?

最佳答案

您无法查询 firestore 中不存在的字段。字段“trained_on”需要存在,Firestore 索引才能识别它。

下面引用官方文档,https://firebase.google.com/docs/firestore/query-data/order-limit-data#order_and_limit_data

限制请注意 orderBy() 子句的以下限制:

orderBy() 子句还会过滤是否存在给定字段。结果集将不包括不包含给定字段的文档。

此限制的一个可能的解决方法是,您使用单独的查询获取所有现有文档,然后手动从查询结果中减去这些文档。或者,您可以在所需文档中包含“trained_on”字段的标记值,例如 null。 orderBy() 子句适用于 null 值。

关于javascript - 如何使用 firestore orderBy 但同时添加未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64015699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com