推入Firebase数据库时如何设置按键?
当我从前端(Angular 4)和后端(Firebase函数)向Firebase数据库写入数据时,Firebase会生成一个按键。 使用这个密钥,我将来无法访问数据,因为密钥是唯一的。 我想知道是我可以自己设置密钥的任何方式,或者我可以在不知道密钥的情况下访问数据?
这是我从前端的代码:
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的情况下,我无法访问数据。
我想要的最好的情况是path/我自己的pushID /数据
非常感谢您的帮助!
钥匙应该以任何方式是唯一的。 您可以set
自己的键,而不是push
admin.database().ref('/messages/'+ yourUniqueId).set({original: original}).then(function (snapshot) { res.redirect(303, snapshot.ref);});
yourUniqueId
可以是auth uid
或用户的email
,如独特的东西。
如果你想循环所有的消息:
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); }); });
有关这方面的更多信息,请阅读关于阅读数据列表的Firebase文档, 对数据进行 sorting和过滤 ,然后使用Firebase代码实验室 。
- 在angular度2中设置material-datepicker的date格式
- 每次如何引用本地安装的Angular2 bundle而不是“npm install”?
- Nodejs,关于npm安装
- 如何处理来自HTTP Post的响应
- 找不到与给定名称匹配的资源:attr'android:keyboardNavigationCluster'
- stripe angular错误:Uncaught(在promise中):TypeError:无法读取未定义的属性'stripeService'
- 在mongodb / node中存储敏感数据
- Intellij Idea在debugging量angular器时挂起
- 更改文件夹中的图像不反映浏览器中的更改