2016-08-03 75 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的文档,但我不知道如何去做他们所说的 –

相关问题