当我从前端(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 data 上的 Firebase 文档, sorting and filtering data , 然后取 Firebase codelab .
关于node.js - 推送到 firebase 数据库时如何设置推送键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46958832/