firesore 上的 on.(child_added) 相当于什么?

AIo*_*Ion 4 javascript firebase google-cloud-firestore

从这里开始使用 firestore :)

我希望每次文档更新或在集合中创建文档时都会收到一个事件。我只想收到 1 个文档..更新/创建/删除的文档..等等。我不想获取每个更改的漏洞集合。

类似于.on("child_added")实时数据库中的工作方式。

例如:

// logs the entire collection.
db.collection("categories").onShapshot(snap => console.log(snap));
Run Code Online (Sandbox Code Playgroud)

再次给我类别的漏洞列表..而不是仅仅获取创建的文档。

我想用它来实时更新/删除/创建 dom 中的文档。

我不知道如何根据firebase 文档执行此操作

这个超级重要且基本的功能是故意不再支持的吗?

或者只是我没有看到一些明显的东西......请注意,我没有任何具体的查询。

我只想在创建特定类别后将其恢复。谢谢 :)

Fra*_*len 6

当您的查询的数据发生更改时,您将被调用,并在QuerySnapshot. 但该快照中包含有关已更改内容的信息。如果您只想对新添加的文档执行某些操作,请检查该文档是否是使用文档中的此示例添加的:

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());
                // This is equivalent to child_added
            }
            if (change.type === "modified") {
                console.log("Modified city: ", change.doc.data());
                // This is equivalent to child_changed
            }
            if (change.type === "removed") {
                console.log("Removed city: ", change.doc.data());
                // This is equivalent to child_removed
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

请注意,此侦听器的未修改数据是从本地缓存读取的,因此不必从服务器重新读取。