我有一个教练应用程序,其中有一个部分,我可以将实时更新推送给玩家,如:“没有练习 - 做恶劣天气,练习将被推到星期五”
我一直试图弄清楚当我用新帖子更新这个UpdatesTableView时如何发送自动通知。比如“发布新的更新”。
我将更新发布到Firebase数据库。必须有一种方法来监听更改以及何时向所有用户发送通知?
我已经在我的应用中设置了firebase通知,但每次推送更新时我都必须使用Firebase控制台来推送这些通知。有谁知道如何自动化这个?谢谢!
答案 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中,并创建一个新的通知对象并显示给用户。