Javascript 如何在Firebase/Google Cloud Firestore中获取集合中最新添加的文档?
使用web/JS平台,我想检索添加到集合中的最新文档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) {
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());
}
});
});