簡體   English   中英

訪問 Firebase 數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM