3

我有一個簡短的問題。我想從雲端功能 發送一個自定義值,該值會偵聽Firebase數據庫中的onWrite事件。 我對雲計算的功能代碼:發送具有通知樣式的任意數據Firebase雲消息傳送

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

exports.pushNotification = functions.database.ref('/chats/notifications/{pushId}').onWrite(event => { 
    var values = event.data.val(); 

const payload = { 
    notification: { 
     title: values.username, 
     body: values.message, 
     sound: "default", 
     displayName: values.username, 
     UiD: values.recieverUiD 
    }, 
}; 
const options = { 
    priority: "high" 
}; 
return admin.messaging().sendToTopic(values.recieverUiD, payload, options);}); 

而現在的數據庫結構如下所示:

聊天

-notifications

- 一些ID

-username:fdsdf

-uid:9043554

如何將UiD發送到我的設備?代碼的方式不適用於displayName ...我該怎麼做

+0

我沒有在數據庫結構上作弊或什麼不工作 –

+0

我用supscibing發送通知給我的UID主題。在節點腳本中,我將它發送給主題。並且知道我只想知道如何發送自定義值並通過remoteMessage.getData.get(「userUiD」)將其接收到我的FirebaseMessagingService中; –

回答

1

您可以通過添加一個數據鍵同級別傳遞通知消息的任意鍵值對作爲您的有效載荷中的通知密鑰:

{"notification": {...}, 
"data" : { 
     "uid": 9043554 
    } 
} 
+0

謝謝。我只是忘了它,但無法在Google上找到它 –

1

您需要爲每個用戶在數據庫中保存通知令牌。

Here the documentation to get this notification token.

Here a great sample to send Push Notifications with Firebase Cloud Functions.

要自定義您的有效載荷:

{ 
    "to": "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", 
    "notification": { 
    "body": "great match!", 
    "title": "Portugal vs. Denmark", 
    "icon": "myicon" 
    }, 
    "data": { 
    "Nick": "Mario", 
    "Room": "PortugalVSDenmark" 
    } 
} 

Data message FCM documentation.

+0

這工作正常。但是,我如何將自定義值發送到我的設備?例如userUiD,... –

+0

檢查我的文章更新。 – Pipiks

+0

您知道如何從Firebase腳本中刪除數據庫中的父級? –

相關問題