如何向用户提供新数据时发送Firebase通知?

时间:2017-01-30 03:33:53

标签: ios xcode firebase push-notification firebase-realtime-database

我有一个教练应用程序,其中有一个部分,我可以将实时更新推送给玩家,如:“没有练习 - 做恶劣天气,练习将被推到星期五”

我一直试图弄清楚当我用新帖子更新这个UpdatesTableView时如何发送自动通知。比如“发布新的更新”。

我将更新发布到Firebase数据库。必须有一种方法来监听更改以及何时向所有用户发送通知?

我已经在我的应用中设置了firebase通知,但每次推送更新时我都必须使用Firebase控制台来推送这些通知。有谁知道如何自动化这个?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以'{0:08b}'.format( int(n) ) 轻松地对listening/Observing中特定位置的任何data change执行此操作。如果将新子项添加到该路径,则将调用关联的块。

在您的情况下,您可以观察firebase。每当您发布任何更新时,请调用该块,该块将向所有用户发送通知。

如果您使用的是Swift:

UpdatesTableView

如果您使用的是Objective C:

func observe(_ eventType: FIRDataEventType, with block: @escaping (FIRDataSnapshot) -> Void) -> UInt

根据官方firebase文档:

  

- (FIRDatabaseHandle) observeEventType:(FIRDataEventType)eventType withBlock:(nonnull void (^)(FIRDataSnapshot *_Nonnull))block; :用于在特定位置收听observeEventType:withBlock。这是从中读取数据的主要方式   Firebase数据库。将触发您的块以获取初始数据   并且每当数据发生变化时再次。

而且,只要您想停止收听数据更改,就可以使用data changes

  

使用removeObserverWithHandle:停止接收更新。 - 参数:   eventType要侦听的事件类型。 - 参数:阻止   应该使用初始数据和更新调用的块。它是   将数据作为FIRDataSnapshot传递。 - 返回:用于的句柄   稍后使用removeObserverWithHandle取消注册此块:

有关更多详细信息,请阅读iOS firebase#Attaching Observers to read data Documentation

此外,为了有效地向用户发送removeObserverWithHandle,您可以使用Firebase Notification。看看它。我不太了解你的用例,但我认为这会有所帮助。

答案 1 :(得分:0)

我也遇到了同样的问题,我想在Firebase中的数据发生变化时向用户显示通知,无论前台或后台的应用程序如何。

我通过将ChildEventListener绑定到一个在后台运行的服务来实现它。在每个childAdded事件数据都存储在sqlited db中,并创建一个新的通知对象并显示给用户。