- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个应用程序,我必须在其中使用 firebase 保存来自服务器的所有通知。我可以保存哪个通知在前台出现,如果通知在后台出现,我也可以保存,但条件是如果我点击通知我可以保存它。但我主要担心的是,如果用户滑动通知或清除通知意味着用户不会点击通知,那么我该如何保存它。有什么方法吗?请帮助我找到解决方案。
最佳答案
您可能有一个扩展 FirebaseMessagingService
的类,因此您可以在 onMessageReceived
函数上做一些事情。您可以使用 RemoteMessage 函数 getData()
参见 docs获取消息有效负载。从那里您可以访问标题和其他信息。当然,您需要了解收到的通知的结构。因此,为了回答您的问题,您可以在后台收到通知信息时将其保存在 FirebaseMessagingService
的 onMessageReceived
方法中。
当应用被终止时,FCM 停止接收通知 see .因此,您最好的方法是按照@D10S 的建议进行操作,并在云功能中实现保存和发送。 here's如何发送通知的示例。您需要让您的应用将通知 token 保存到实时数据库,以便云功能可以读取它并将通知发送给正确的用户。
要将您的 token 保存到实时数据库中,您需要在 FirebaseInstanceIdService
中添加一些代码,特别是在 onTokenRefresh
方法中。您可以在数据库中有一个名为 tokens 的位置,并且可以使用用户 ID 创建一个对象。所以你可以像这样将 token 添加到服务器:
DatabaseReference ref = database.getReference("tokens");
Map<String, String> users = new HashMap<>();
users.put(userUID, token);
ref.setValueAsync(users);
关于android - 如何在不单击的情况下将通知标题或正文保存在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48929544/
我是一名优秀的程序员,十分优秀!