firebase最近添加了快照值(只有一个)

时间:2017-11-29 14:07:00

标签: javascript firebase firebase-realtime-database

如何在没有时间戳比较的情况下从firebase中仅检索一个最近添加的子值?

我想在客户端获取相同的键/值(只有一个子节点,而不是完整的子节点数组),同时通过我的firebase控制台添加它。

{users:
   "id-ue3": "bob",
   "id-om4": "john", // <-- recently added
   "id-ker": "kevin" 
}

firebase.database().ref().on('child_changed', function(snapshot) {
   ....
   console.log(last_name); // output --> "john"
});

1 个答案:

答案 0 :(得分:1)

您的JSON无法知道最近添加的数据。由于Firebase实时数据库没有保留有关何时添加数据的任何元数据,因此您需要在JSON中包含必要的信息。

两种方法:

  1. 为数据添加时间戳属性。您可以使用客户端时间进行此操作,或者在将数据写入数据库时​​使用let Firebase generate a server-side timestamp
  2. 使用push()添加项目的密钥,对必要信息进行编码。有关这些ID的更多信息,请参阅此blog post about push IDs
  3. 请注意,您可能需要收听child_added事件。 child_changed事件仅在更新子节点时触发,而不是在添加新子节点时触发。