我正在嘗試製作向給定用戶發送推送通知的雲端功能。使用雲端功能發送推送通知用於Firebase
用戶進行一些更改,並在Firebase數據庫中的節點下添加/更新數據(該節點表示用戶標識)。在這裏我想觸發一個向用戶發送推送通知的函數。
我對DB中的用戶具有以下結構。
Users
- UID
- - email
- - token
- UID
- - email
- - token
直到現在我有這樣的功能:
exports.sendNewTripNotification = functions.database.ref('/{uid}/shared_trips/').onWrite(event=>{
const uuid = event.params.uid;
console.log('User to send notification', uuid);
var ref = admin.database().ref('Users/{uuid}');
ref.on("value", function(snapshot){
console.log("Val = " + snapshot.val());
},
function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
當我得到的回調,則snapshot.val()返回null。任何想法如何解決這個問題?也許以後如何發送推送通知?
uuid的console.log是否顯示正確的值? –
是的,uuid是正確的。 –
使用back-ticks在你的ref:'admin.database()。ref(\'Users/$ {uuid} \')'中替換'uuid'的值。你也應該使用'once()'而不是'on()'。 'on()'離開監聽器;不是你想要的雲功能。 –