簡體   English   中英

Firebase雲設備到設備推送通知設備令牌與主題

[英]Firebase cloud device to device push notifications device token vs topics for

我剛得到firebase函數推送通知,這是第一次工作。 我正在使用監視更改:

exports.observeNotifications = functions.database.ref('/notifications/{user_id}/{notification_id}').onWrite((change, context) => {

以后,我用:

const userQuery = admin.database().ref(`users/${from_user_id}/username`).once('value');
const deviceToken = admin.database().ref(`/users/${user_id}/device_token`).once('value');

檢索發送者的userUID和設備令牌,該令牌隨后與sendToDevice()

這很好用,是我在各處推薦的方法,但是我想知道為什么要這樣做而不是在用戶到用戶方案中使用主題。

在聊天應用程序的示例中,每次發送聊天時,都會向notifications/users/{uid} ...發送一個值並觸發事件。 然后必須進行值調用,必須完成承諾處理,然后可以配置和發送推送有效負載。

使用主題時,當用戶首次在第一時間加載應用程序時,可以為該用戶訂閱一個主題,例如“ chat_notifications_usersIUID”。 這樣就不需要獲取設備令牌並經歷使用承諾的過程,並且大大簡化了將通知發送給特定用戶的過程,簡化為僅推送到特定於收件人UID的特定主題。

在每個用戶之間發送推送通知時,在Firebase函數上使用主題有任何不利之處。

主題可以公開訪問。 因此,即使您為每個用戶創建一個主題,所有用戶都可以訂閱每個主題。

因此,如果消息被認為是公開的,則僅應以這種方式使用主題。 例如,在公共聊天室中,這可能會很好,因為每個人都已經可以在公共聊天室中看到消息了。 但是通過主題發送私人消息意味着其他用戶在為用戶了解主題時可以攔截它們。

如果您的消息不打算公開,則需要發送給各個令牌。 您只應在極端情況下達到速率限制。 如果您遇到這種情況,請聯系Firebase支持以獲取故障排除方面的個性化幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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