Javascript Access Firebase数据库
我和Firebase有一个项目。我希望在数据库中添加最近的分支后,立即使用云函数访问数据库的属性“text” 我不习惯使用他们的数据库 我在NodeJs中的代码如下:Javascript Access Firebase数据库,javascript,node.js,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Node.js,Firebase,Firebase Realtime Database,Google Cloud Functions,我和Firebase有一个项目。我希望在数据库中添加最近的分支后,立即使用云函数访问数据库的属性“text” 我不习惯使用他们的数据库 我在NodeJs中的代码如下: exports.messageAnswer = functions.database.ref('/messages') .onWrite(event => { const snapshot = event.data; const val = snapshot.val(); var t
exports.messageAnswer = functions.database.ref('/messages')
.onWrite(event => {
const snapshot = event.data;
const val = snapshot.val();
var textMsg = val.text;
var regex = "(bot)";
//var database = firebase.database();
if(!textMsg.match(regex) && textMsg.length > 0){
var id = new Date().getTime().toString();
var object = {
text : "I am the Cloud bot #" + id,
};
admin.database().ref('/messages').push(object);
}
return 0;
});
我的问题是存在一个“PUSH ID”:我不知道如何用轮廓线绘制这个唯一的字符串来获取属性“text”的值。您可以使用
通配符
来获取text
属性,如下所示:
exports.messageAnswer = functions.database.ref('/messages/{pushid}')
.onWrite(event => {
有关更多信息,请查看以下内容:
您可以将路径组件指定为通配符,方法是将其用花括号括起来;ref('foo/{bar}')匹配/foo的任何子级。这些通配符路径组件的值在函数的event.params对象中可用。在本例中,该值可用作event.params.bar
只要
/messages
下的任何数据发生更改,就会触发当前代码。根据您的描述,您似乎只希望在添加新消息时被触发。您可以使用onCreate
而不是onWrite
来实现这一点。此外,您还需要侦听特定消息的更改,而不是整个/messages
节点的更改:
exports.messageAnswer = functions.database.ref('/messages/{messageId}')
.onCreate(event => {
另请参阅Doug关于这些触发器的博客文章: