首页 > 解决方案 > 如何根据firestore中的参数对数据进行排序?

问题描述

我在根据参数订购数据时遇到问题。下面是代码片段。

event_date 是一个timestamp

 db.collection("abc")   
 .doc("Events")
  .collection("List")     
  .where("event_status", "==", "0")   
     .orderBy("event_date", "desc").get()      
     .then(function (querySnapshot) {-------------------});

抛出的错误消息是,

未捕获的错误:对象作为 React 子项无效(发现时间:2018 年 11 月 25 日星期日 17:27:56 GMT+0530(印度标准时间))。如果您打算渲染一组子项,请改用数组或使用 React 附加组件中的 createFragment(object) 包装对象。检查 Table 的渲染方法。

标签: javascriptandroidfirebasereact-nativegoogle-cloud-firestore

解决方案


默认情况下,firebase 查询按文档 ID 的升序检索所有文档。您可以使用 指定数据的排序顺序orderBy()

在您的情况下.orderBy("event_date", "desc"),如果您使用 firebase serverTimestamp() 设置字段“event_date”,例如:.set({event_date = firebase.firestore.FieldValue.serverTimestamp() })您将收到上述错误。为了解决这个问题,您可以改为将其设置new Date() 为例如:.set({event_date = new Date() })

在 Firebase 中,firebase.firestore.FieldValue.serverTimestamp()两者new Date()都会产生时间戳

希望这可以帮助。


推荐阅读