我正在尝试在我的应用中为某些操作(“有人喜欢您的这个”,“有人对此发表了评论”等)建立推送通知。
我试图遵循Google指南here
但是当我复制代码时,它的这一部分
String response = FirebaseMessaging.getInstance().send(message);
出现错误,表示它期望使用RemoteMessage
而不是Message
。
我正在尝试将其更改为RemoteMessage,但我听不懂:
.setToken
的东西。RemoteMessage.Builder()
括号内的内容我已经阅读了很多手册,但找不到任何相关的手册。 API是否有新变化?
帮助我的最好方法是以Kotlin为例,该示例包含一条新生成的消息-作为响应,该消息将基于令牌触发接收者的新推送通知(我很确定我可以处理接收消息独自一人)。
谢谢!
编辑:
我能够使其适应所需的模式,但是我无法显示通知。
这是我用来发送通知的功能:
fun sendCloudMessage(userId: String) {
val receiverRef = FirebaseDatabase.getInstance().getReference("/users/$userId/services/firebase-token")
receiverRef.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onCancelled(p0: DatabaseError) {
}
override fun onDataChange(p0: DataSnapshot) {
val registrationToken = p0.getValue(String::class.java)
Log.d("tokencomplete", p0.toString())
Log.d("tokenonly", registrationToken)
val fm = FirebaseMessaging.getInstance()
fm.send(
RemoteMessage.Builder("$registrationToken@gcm.googleapis.com")
.setMessageId(Integer.toString(0))
.addData("my_message", "Hello World")
.addData("my_action", "SAY_HELLO")
.build()
)
}
})
}
我传递给此函数的userId
是firebase uid,并使用它获取用户正在使用的应用程序的最新令牌。我检查了一下,该部分正常工作,然后以类似于此格式的令牌返回了令牌
ecK86WRoAh4:APA91bGQWSesCptPF_nzfkmgDe-zOYYo2Cj4XT_NeNTVaBxQakbvauOpkVFd7DCRIugMCfso5SadEUtyTRvrhdCiBpKxGGMRgUYNsUhA24f9IkmxjL5dWD
但是该函数本身不会在另一台设备上触发任何通知(我正在使用两台设备,试图让一个设备向另一台设备发出通知)。
答案 0 :(得分:0)
在您的>>> pd.to_datetime('2-FEB-19')
Timestamp('2019-02-02 00:00:00')
构建器构造函数中设置发件人ID,它应如下所示:
RemoteMessage
;
修改
这是im使用的方法:
RemoteMessage.Builder(token)