2016-08-03 101 views
7

我已經創建了一個使用Firebase實時數據庫和存儲的應用程序。我的應用允許用戶互相發送消息,但我不知道如何在用戶收到新消息時通知用戶。我將所有消息存儲在一個稱爲消息的節點中。然後我將消息關係存儲在稱爲「用戶消息」的不同節點中。如何監視「用戶 - 消息」節點以通知用戶他們有新消息?我熟悉觀察事件類型等,即:.Value和.ChildAdded,但我不知道如何觸發事件來發送用戶通知。當Firebase實時數據庫節點更新時發送推送通知

編輯:給了一點點clairity。

+0

遵循https://firebase.google.com/docs/notifications/ios/console-audience –

+3

我不知道如何回答我的問題。這隻允許我發送推送通知給特定的用戶列表。 –

回答

0

就像你剛纔提到的那樣,只要添加了新的子項,每當有新消息添加到user-messagesfirebase時,您都可以使用child_added事件來監視事件處理程序。

ref.child('user-messages').on('child_added', (snapshot) => { 
    // Read the message and send notification here 
}) 

您可能需要更新user-message以及之後已處理,這樣你就沒有好下場,重複發送通知,您的應用程序重新啓動時。

+0

我需要它在應用程序未運行或應用程序在後臺時提醒用戶。 –

+0

這應該發生在服務器端。所以,如果應用程序沒有運行或在後臺運行,這並不重要。 –

+0

我想我們可能會在這裏說話。快照僅在將它們放入函數中然後調用該函數時發生,或者在視圖加載或加載時執行。這意味着觀察者只會在被調用時觀察數據庫。這意味着用戶無法獲得警報,除非他們在該視圖上並且該應用必須正在運行。我需要的東西可以在應用程序未運行時觀察我的數據庫,然後在更新節點時向用戶發送通知。 –

2

所以我意外地沒有看到Firebase可以使用Google Cloud Messaging,它似乎能夠做我想做的事。爲了將來的參考Firebase已經把IOS設置在這裏:Firebase Cloud Messaging SetUp

+0

嗨泰勒,這是公認的答案嗎? – Josh

+0

我無法得到這個做我想做的,所以我結束了使用One Signal的一個SDK,它適用於我。 –

0
+0

我甚至不知道如何設置XMPP服務器。我試圖設置ejabbered,但它甚至不會讓我進行身份驗證。你用什麼來讓你開始。我查看了firebase的文檔,但我不知道如何去做他們所說的 –