2016-08-17 92 views
0

我正在使用Firebase雲消息傳遞。我有幾個問題我無法從文檔來了解:Firebase Pull通知

  1. 安卓:讓我們假設應用程序被關閉(不中背景:關閉)。如果我發送一個通知,也將數據有效載荷,該數據有效載荷通過意向額外
  2. 傳遞給活動

與消息通知與數據有效載荷,背景和前景 。在這種情況下,通知將傳遞到 設備的系統托盤,並且數據有效負載將通過您的啓動器活動意圖的附加組件 來傳遞。

如果用戶沒有點擊通知會怎麼樣?數據有效載荷是否丟失?有沒有辦法檢索它?

  1. iOS/Android。讓我們假設用戶禁用了通知,並且我發送了一個通知給客戶端:有沒有辦法在應用程序啓動時檢索(拉)通知?

非常感謝

回答

1

如果應用程序被關閉(未在後臺)收到通知時,onMessageReceived方法被調用,在那裏,你可以檢索數據淨荷與remoteMessage.getData().get("key_for_parameter");其中key_for_parameter是您在通知中發送的參數的名稱。即使應用程序關閉,也會調用此方法。但是,考慮到只有在省略通知中的「通知」參數時纔會調用「onMessageReceived」(查看this post

因此,一旦在onMessageReceived中有參數,您可以查找使用它們的策略在您的應用程序中,如存儲在數據庫中,並且如果用戶未單擊通知,則不會丟失數據。

+0

太棒了!我錯過了「onMessageReceived」僅在「通知」被省略時才被調用的事實。這不是很奇怪嗎?我沒有在文檔中找到它。 –

0

如果你在後臺程序,火力地堡不會觸發onMessageReceived()。爲什麼.....?我不知道。在這種情況下,我沒有看到實施FirebaseMessagingService的任何問題。

根據文檔,如果你想處理後臺消息到達,你必須發送'click_action'與您的消息。但是,如果您僅通過Firebase API發送來自Firebase控制檯的消息,則無法進行此操作。這意味着你將不得不建立自己的「控制檯」,以便市場營銷人員使用它。所以,這使得Firebase控制檯也相當無用!

這個新工具背後有一個非常好的有希望的想法,但執行得很糟糕。

,我想我們將不得不等待新版本和改進/修復