[英]Access Firebase database
我有一個 Firebase 項目。 我想在最近的分支添加到我的數據庫后立即使用雲功能訪問我的數據庫的屬性“文本”。
我不習慣使用他們的數據庫。
我在 NodeJs 中的代碼如下:
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”的值。
您可以使用wildcards
來獲取text
屬性,如下所示:
exports.messageAnswer = functions.database.ref('/messages/{pushid}')
.onWrite(event => {
有關更多信息,請查看:https ://firebase.google.com/docs/database/extend-with-functions
你可以用大括號將路徑組件指定為通配符; ref('foo/{bar}') 匹配 /foo 的任何孩子。 這些通配符路徑組件的值在函數的 event.params 對象中可用。 在此示例中,該值可用作 event.params.bar
每當/messages
下的任何數據發生更改時,都會觸發您當前的代碼。 從您的描述來看,您似乎只想在添加新消息時觸發。 您可以通過使用onCreate
而不是onWrite
來做到這onWrite
。 此外,您需要監聽特定消息的更改,而不是整個/messages
節點:
exports.messageAnswer = functions.database.ref('/messages/{messageId}')
.onCreate(event => {
另請參閱 Doug 關於這些觸發器的博客文章: https : //firebase.googleblog.com/2017/07/cloud-functions-realtime-database.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.