推入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代码实验室 。
- 无法升级到Angular4
- 如何使用nodejs部署angular度的应用程序
- 我如何在我的量angular器testing中使用lodash _.find?
- 无法卸载angular-cli
- 不能使用var HtmlReporter = require('protractor-html-screenshot-reporter')
- 在IE量angular器Asyc错误
- 获取“ProgressEvent”,而不是在Angular + NodeJS中响应json
- 量angular器:xlsx-template错误无法读取未定义的属性“长度”
- 如何使用node4iler包使用Angular 4和Node Js发送电子邮件