当我从前端(Angular 4)和后端(firebase 函数)将数据写入 firebase 数据库时,firebase 会生成一个推送 key 。有了这个 key ,我以后就不能访问数据了,因为这个 key 是唯一的。我想知道有什么方法可以自己设置 key ,或者我可以在不知道 key 的情况下访问数据?

这是我的前端代码:

this.db.list(`${this.basePath}/`).push(upload);


这是我的后端代码:
admin.database().ref('/messages').push({original: original}).then(function (snapshot) {
res.redirect(303, snapshot.ref);});

我推送的所有数据都在 path/pushID/data 下

我无法在不知道 pushID 的情况下访问数据。
我想要的最好的情况是路径/我自己的 pushID/数据

非常感谢您的帮助!!

最佳答案

如果要遍历所有消息:

var ref = firebase.database().ref("messages");
ref.once("value", function(snapshot) {
  snapshot.forEach(function(message) {
    console.log(message.key+": "+message.val().original);
  });
});

如果要查找特定消息,请使用查询:
var ref = firebase.database().ref("messages");
var query = ref.orderByChild("original").equalTo("aaaa");
query.once("value", function(snapshot) {
  snapshot.forEach(function(message) {
    console.log(message.key+": "+message.val().original);
  });
});

有关更多信息,请阅读有关 reading lists of datasorting and filtering data 的 Firebase 文档,并获取 Firebase codelab

关于node.js - 推送到firebase数据库时如何设置推送键?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46958832/

10-10 00:31
查看更多