【问题标题】:how can i sort firebase timestamp data reverse reactjs我如何对firebase时间戳数据反向reactjs进行排序
【发布时间】:2021-06-22 14:48:41
【问题描述】:

当我创建新笔记时,它将旧到新排序,但我想从新到旧排序(反转它)。 我该怎么做?

我的代码:

const notesRef = useFirestore().collection('users').doc(uid).collection("notes");
  const {status, data} = useFirestoreCollection(notesRef.orderBy("timezone"));

及其图像:(这里,它像 1-2-3 一样订购,但我想订购 3-2-1,从新到旧)

我们的回报就像地图:

 {data?.docs?.map((d, index) => {
              return (<Note
                      key={index}
                      id={index}
                      title={d.data().title}
                      content={d.data().content}
                      onDelete={deleteNote}
                      onDocId={d.id}
                      timezone={d.data().timezone}
                    />);
            })}

【问题讨论】:

    标签: javascript reactjs firebase google-cloud-firestore


    【解决方案1】:

    要按降序对查询进行排序,您可以将第二个参数传递给orderBy。所以:

    notesRef.orderBy("timezone", "desc")
    

    另请参阅 ordering data 上的 Firebase 文档。

    【讨论】:

      【解决方案2】:

      有很多方法可以做到这一点。

      • 从 Firebase 中以相反的顺序获取数据。我以 25 为例。您可以根据自己的要求选择限制。
      notesRef.orderBy("timezone").limitToLast(25);
      
      • 在客户端反转数据
      const {status, data} = useFirestoreCollection(notesRef.orderBy("timezone"));
      console.log(data.docs.reverse())
      

      【讨论】:

      • limitToLast 值是多少?
      • 我尝试限制ToLast(10),但没有成功。我还有一张地图(我在上面添加的),我添加了 data?.reverse() 函数,但它也没有工作
      • 你可以在这里查看文档:firebase.google.com/docs/reference/js/…
      • 我在查看数据后更新了我的答案。您可以反转 data.docs 数组。
      • 非常感谢。另请参阅其他答案,如果我在时区附近写“desc”,它也可以。但是 doc.reverse() 也可以。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 2021-03-16
      • 1970-01-01
      • 2018-08-09
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多