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