node.js - 推送到 firebase 数据库时如何设置推送键?

标签 node.js angular firebase firebase-realtime-database google-cloud-functions

当我从前端(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下

simple image

如果不知道 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/

相关文章:

node.js - 使用 gulp-express 运行 coffescript 文件

node.js - 浏览器屏幕上的 Express Router "Cannot GET ..."

javascript - 使用 handlebars.js 显示 JSON 数据

unit-testing - 如何测试 Angular2 的 router.navigate?

node.js - Chrome 的跟踪事件分析工具中的自上而下(树)、自上而下(重)和自下而上(重)有什么区别

javascript - html存储safari隐身模式,angular2

angular - 检查是否在 Angular Jasmine 测试用例中调用内部方法

firebase - 如何更改 Firebase 实时数据库位置?

javascript - 如何在 Firebase(Web)中检索图像、视频和 PDF?

android - 发送消息时谷歌 FCM Invalid_argument