Google Firestore 是否需要监听器和推送通知?
Do I need both a listener and push notifications with Google Firestore?
我正在使用 React Native 和 Google Firestore 后端制作应用程序。
使用 Firestore API,我可以在聊天内容上设置监听器,以便该应用程序可以立即对更新屏幕或通知用户等新变化做出反应。
问题是当 phone 的屏幕被锁定时这不起作用,从那时起侦听器不再处于活动状态。
有效的是向应用程序发送推送通知,即使在锁定时也是如此。问题在于,由于 Firestore 的限制(Firestore 的 OnCreate 方法在触发时有几秒钟的延迟),这要慢得多,因此无法在发送时立即接收消息。这也意味着当用户只是聊天时,我必须推送 很多 通知,这正是 Firestore 侦听器存在的原因。
我真的必须写一些丑陋的 listener/notification 混合来处理这个问题,还是有什么我没有看到的?
谢谢!
问题不在于 Firestore。问题是操作系统正在关闭应用程序的网络访问以节省电池和网络成本。这不是您可以直接控制的事情。用户的电池寿命比任何人的应用程序中的代码 运行 更重要。这种行为是您需要接受和处理的。
推送通知有效,因为您向 OS 发出信号,它应该唤醒应用程序,以便它可以做更多的工作。它会这样做一段时间,然后再次关闭应用程序以节省电量和网络。
您实际上没有任何替代方案来实施“即时”更新 - 您描述的系统正在按预期工作。
我正在使用 React Native 和 Google Firestore 后端制作应用程序。
使用 Firestore API,我可以在聊天内容上设置监听器,以便该应用程序可以立即对更新屏幕或通知用户等新变化做出反应。 问题是当 phone 的屏幕被锁定时这不起作用,从那时起侦听器不再处于活动状态。
有效的是向应用程序发送推送通知,即使在锁定时也是如此。问题在于,由于 Firestore 的限制(Firestore 的 OnCreate 方法在触发时有几秒钟的延迟),这要慢得多,因此无法在发送时立即接收消息。这也意味着当用户只是聊天时,我必须推送 很多 通知,这正是 Firestore 侦听器存在的原因。
我真的必须写一些丑陋的 listener/notification 混合来处理这个问题,还是有什么我没有看到的?
谢谢!
问题不在于 Firestore。问题是操作系统正在关闭应用程序的网络访问以节省电池和网络成本。这不是您可以直接控制的事情。用户的电池寿命比任何人的应用程序中的代码 运行 更重要。这种行为是您需要接受和处理的。
推送通知有效,因为您向 OS 发出信号,它应该唤醒应用程序,以便它可以做更多的工作。它会这样做一段时间,然后再次关闭应用程序以节省电量和网络。
您实际上没有任何替代方案来实施“即时”更新 - 您描述的系统正在按预期工作。