我一直在爲此奮鬥很長一段時間,我真的不知道爲什麼會發生這種情況。使用Firebase雲端功能發送通知時循環
我正在使用雲功能發送狀態更改通知庫。這是我的代碼:
exports.sample = functions.database.ref('users/{pushID}/status').onUpdate(Snap => {
const key = Snap.params.pushID;
var ref = admin.database().ref('users');
return ref.child(`${key}`).on("value", function(snap) {
const category = snap.child('category').val();
console.log("category",category);
var ref = admin.database().ref('/categories/')
return ref.child(`${category}`).on("value", function(snapshot){
const tokenID = snapshot.child('tokenID').val();
const payload = {
data: {
title: 'HELLO',
text: `HOW ARE YOU ?`
}
};
return admin.messaging().sendToDevice(tokenID, payload);
})
});
我部署函數後,我使用儀表板更改狀態。
當我這樣做,我收到通知! (我得到「發送」的日誌) 但當我再次改變「狀態」,我得到兩個通知!現在我得到了兩次「發送」日誌等等。
它看起來像一個循環,但我不明白爲什麼, 無論我記錄我只得到一個值,我沒有得到多個標記或任何東西,它只是發送相同的通知給同一個用戶。
每當我重新部署函數「計數器」重置,然後第一次更改只發送一個通知。
我的數據庫看起來是這樣的:
users
-->push id
---->status=""
---->category="test"
categories
-->test
您的代碼很難閱讀,因爲它沒有縮進。 –
@DougStevenson和現在? – user2396640