How to set push key when pushing to firebase database?
当我从前端(Angular 4)和后端(firebase函数)向Firebase数据库写入数据时,firebase会生成一个推键。使用此密钥,由于密钥是唯一的,以后我将无法访问数据。我想知道我自己可以设置密钥还是可以在不知道密钥的情况下访问数据吗?
这是我来自前端的代码:
1 | this.db.list(`${this.basePath}/`).push(upload); |
这是我来自后端的代码:
1 2 | admin.database().ref('/messages').push({original: original}).then(function (snapshot) { res.redirect(303, snapshot.ref);}); |
我推送的所有数据都将位于path / pushID / data
下
我无法在不知道pushID的情况下访问数据。
我想要的最好的情况是路径/我自己的pushID / data
非常感谢您的帮助!
如果要遍历所有消息:
1 2 3 4 5 6 | var ref = firebase.database().ref("messages"); ref.once("value", function(snapshot) { snapshot.forEach(function(message) { console.log(message.key+":"+message.val().original); }); }); |
如果要查找特定消息,请使用查询:
1 2 3 4 5 6 7 | 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); }); }); |
有关此内容的更多信息,请阅读有关读取数据列表,排序和过滤数据的Firebase文档,并使用Firebase代码实验室。
键在任何方面都应该是唯一的。您可以像这样
1 2 | admin.database().ref('/messages/'+ yourUniqueId).set({original: original}).then(function (snapshot) { res.redirect(303, snapshot.ref);}); |