Javascript 如何在Firebase/Google Cloud Firestore中获取集合中最新添加的文档?

Javascript 如何在Firebase/Google Cloud Firestore中获取集合中最新添加的文档?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,使用web/JS平台,我想检索添加到集合中的最新文档 我如何做到这一点 保存数据时是否需要附加时间戳 服务器是否会在doc.add()的后台自动附加时间戳 您可以尝试使用onSnapshot方法来侦听更改事件: db.collection("cities").where("state", "==", "CA") .onSnapshot(function(snapshot) { snapshot.docChanges().forEach(function(change) {

使用web/JS平台,我想检索添加到集合中的最新文档

  • 我如何做到这一点
  • 保存数据时是否需要附加时间戳
  • 服务器是否会在
    doc.add()
    的后台自动附加时间戳

  • 您可以尝试使用
    onSnapshot
    方法来侦听更改事件:

    db.collection("cities").where("state", "==", "CA")
        .onSnapshot(function(snapshot) {
            snapshot.docChanges().forEach(function(change) {
                if (change.type === "added") {
                    console.log("New city: ", change.doc.data());
                    //do what you want here!
                    //function for rearranging or sorting etc.
                }
                if (change.type === "modified") {
                    console.log("Modified city: ", change.doc.data());
                }
                if (change.type === "removed") {
                    console.log("Removed city: ", change.doc.data());
                }
            });
        });
    

    来源:

    指定您要使用的平台using@AngusTay:你所说的“平台”是什么意思?我在所提供链接的代码上使用了Web选项卡(我想它是指Javascript)。我使用的是云Firestore(不是实时数据库)。这回答了你的问题吗?还是你在问更具体的问题?我是说语言,JS@FrankVanPuffelen:弗兰克,你看到(并编辑)了我的问题,但没有回答?哎哟那很痛。你通常很乐于助人。我认为这将是一个典型且相当常见的用例?而且文档在这个主题上出人意料地稀疏和沉默。这里有什么好的答案或最佳实践可以遵循吗?您需要提供自己的时间戳进行排序。但这不只是拾取更改吗?如果值没有改变,我想在加载时初始化Reactjs组件,比如说,
    componentDidMount()
    时间?当它被触发时,这意味着更改已经在云上完成。我知道。但我正在寻找一种方法,在云firestore中查询现有数据,而不必等待数据更改。因为我需要在组件挂载后立即将数据加载到我的组件中。我指的是普通的工作流程,例如,当页面加载时,检查新文档。。。从第一步到你想要达到的目标你解决了它。但是,您忽略了需要在保存时手动创建自己的时间戳的部分。但你把密码搞定了+1.侦听器变得必要,因为查询在承诺完成之前返回(
    未定义
    )。
    db.collection("cities").where("state", "==", "CA")
        .onSnapshot(function(snapshot) {
            snapshot.docChanges().forEach(function(change) {
                if (change.type === "added") {
                    console.log("New city: ", change.doc.data());
                    //do what you want here!
                    //function for rearranging or sorting etc.
                }
                if (change.type === "modified") {
                    console.log("Modified city: ", change.doc.data());
                }
                if (change.type === "removed") {
                    console.log("Removed city: ", change.doc.data());
                }
            });
        });