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

Javascript 如何使用firestore orderBy,但同时添加未定义的值,javascript,reactjs,firebase,google-cloud-firestore,Javascript,Reactjs,Firebase,Google Cloud Firestore,我从firestore获得训练,由训练有素的_在描述中订购 useEffect(() => { let user = firebase.auth().currentUser; const database = firebase.firestore(); const unsubscribe = database .collection("workouts") .where("uId", "=

我从firestore获得训练,由训练有素的_在描述中订购

  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也未定义,如何添加条目?

您无法查询firestore中不存在的字段。受培训的字段需要存在,firestore索引才能知道它

引用以下官方文件

局限性 请注意orderBy子句的以下限制:

orderBy子句还筛选给定字段的存在性。结果集将不包括不包含给定字段的文档


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

您无法查询firestore中不存在的字段。受培训的字段需要存在,firestore索引才能知道它

引用以下官方文件

局限性 请注意orderBy子句的以下限制:

orderBy子句还筛选给定字段的存在性。结果集将不包括不包含给定字段的文档


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

但问题仍然存在:在未定义的情况下,如何添加条目?第二个问题?这样做的最佳实践是什么?在.then?中,此限制的一个可能解决方法是使用单独的查询获取所有现有文档,然后手动从查询结果中减去这些文档。或者,您也可以在必需的文档(例如null)中包含一个标记值,用于指定字段上的标记。orderBy子句适用于空值这是解决方案!谢谢,问题仍然存在:a如何添加条目,而训练有素的内容也未定义?第二个问题?这样做的最佳实践是什么?在.then?中,此限制的一个可能解决方法是使用单独的查询获取所有现有文档,然后手动从查询结果中减去这些文档。或者,您也可以在必需的文档(例如null)中包含一个标记值,用于指定字段上的标记。orderBy子句适用于空值这是解决方案!非常感谢。