Questions tagged «firebase-cloud-messaging»

Firebase Cloud Messaging(FCM)是GCM的新版本。它继承了可靠且可扩展的GCM基础架构以及新功能。它是一个跨平台的解决方案,使用户可以免费可靠地传递和接收消息和通知。它支持Android,iOS,桌面Web浏览器,带有JavaScript或WebPush的移动网络以及物联网(IoT)设备。

25
当Firebase中的应用程序在后台运行时如何处理通知
这是我的清单 <service android:name=".fcm.PshycoFirebaseMessagingServices"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> <service android:name=".fcm.PshycoFirebaseInstanceIDService"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> </intent-filter> </service> 当应用程序在后台运行且有通知到达时,默认通知就会出现,并且不会运行我的代码onMessageReceived。 这是我的onMessageReceived代码。如果我的应用程序在前台运行,而不是在后台运行,则调用此方法。当应用程序也在后台运行时,如何运行此代码? // [START receive_message] @Override public void onMessageReceived(RemoteMessage remoteMessage) { // TODO(developer): Handle FCM messages here. // If the application is in the foreground handle both data and notification messages here. // …

25
在后台运行应用程序时未调用Firebase onMessageReceived
我正在使用Firebase,并测试在后台运行时从服务器向我的应用发送通知。通知已成功发送,甚至出现在设备的通知中心,但是当出现通知或即使我单击通知时,也不会调用FCMessagingService中的onMessageReceived方法。 当我在我的应用程序处于前台时对其进行测试时,将调用onMessageReceived方法,并且一切正常。当应用程序在后台运行时,会发生此问题。 这是预期的行为,还是我可以解决此问题的方法? 这是我的FBMessagingService: import android.util.Log; import com.google.firebase.messaging.FirebaseMessagingService; import com.google.firebase.messaging.RemoteMessage; public class FBMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { Log.i("PVL", "MESSAGE RECEIVED!!"); if (remoteMessage.getNotification().getBody() != null) { Log.i("PVL", "RECEIVED MESSAGE: " + remoteMessage.getNotification().getBody()); } else { Log.i("PVL", "RECEIVED MESSAGE: " + remoteMessage.getData().get("message")); } } }

8
不推荐使用FirebaseInstanceIdService
希望大家都知道这个类,用于在刷新Firebase通知令牌时获取通知令牌,我们从此类中从以下方法获取刷新的令牌。 @Override public void onTokenRefresh() { // Get updated InstanceID token. String refreshedToken = FirebaseInstanceId.getInstance().getToken(); Log.d(TAG, "Refreshed token: " + refreshedToken); } 为了在我要实现FCM时使用它,我从扩展了MyClass。 FirebaseInstanceIdService 但是,表明FirebaseInstanceIdService已过时 有人知道吗?,不推荐使用什么方法或类代替刷新令牌。 我正在使用 : implementation 'com.google.firebase:firebase-messaging:17.1.0' 我检查了文档是否相同,对此没有提及。:FCM设置文件 更新 这个问题已被解决。 随着Google弃用FirebaseInstanceService, 我问了这个问题以找到方法,我知道我们可以从FirebaseMessagingService获取令牌, 和以前一样,当我问问题文档未更新但现在Google文档已更新以便获取更多信息时,请参阅此google文档:FirebaseMessagingService OLD从:FirebaseInstanceService(已弃用) @Override public void onTokenRefresh() { // Get updated InstanceID token. String refreshedToken = …


13
如何在不使用Firebase控制台的情况下发送Firebase Cloud Messaging通知?
我将从通知的新Google服务开始Firebase Cloud Messaging。 多亏了这段代码https://github.com/firebase/quickstart-android/tree/master/messaging,我能够从Firebase用户控制台发送通知发送到Android设备。 是否有任何API或方法无需使用Firebase控制台即可发送通知?我的意思是,例如,一个PHP API或类似的东西,可以直接从我自己的服务器创建通知。



10
带有新Firebase Cloud Messaging系统的通知图标
昨天,Google在Google I / O上展示了基于新Firebase的新通知系统。我使用Github上的示例尝试了这个新的FCM(Firebase Cloud Messaging)。 尽管我已声明特定的可绘制对象,但通知的图标始终是ic_launcher 为什么呢 下面是用于处理邮件的官方代码 public class AppFirebaseMessagingService extends FirebaseMessagingService { /** * Called when message is received. * * @param remoteMessage Object representing the message received from Firebase Cloud Messaging. */ // [START receive_message] @Override public void onMessageReceived(RemoteMessage remoteMessage) { // If the application is …


8
带有AWS SNS的FCM
我正在AWS为我的android项目使用资源,我正计划为自己的项目添加推送通知服务AWS SNS。有几个问题困扰着我。除了一两个问题,我没有发现任何问题,但解释不明确。 1. AWS支持FCM吗?SNS与...合作GCM。但是Google建议使用FCM而不是GCM。我没有找到AWS支持FCM。 2. AWS即使在发送推送通知之后,是否也将消息(或数据)存储到其数据库中? 3.我尝试将FCM api密钥放入SNS应用程序平台,为什么显示无效参数?

16
Firebase(FCM)如何获取令牌
这是我第一次使用FCM。 我从firebase / quickstart-android下载了一个示例,并安装了FCM快速入门。但是我什至没有点击应用程序中的LOG TOKEN按钮就无法从日志中获取任何令牌。 然后,我尝试使用Firebase控制台发送一条消息,并设置为以我的应用程序包名称为目标。我收到了传入消息。 我想知道可以使用FCM吗?GCM一切正常。 解: 因为我不是Android开发人员,所以只是后端开发人员。因此,我需要一些时间来解决它。我认为示例应用程序中存在一些错误。 码: RegistrationIntentService.java public class RegistrationIntentService extends IntentService { private static final String TAG = "RegIntentService"; public RegistrationIntentService() { super(TAG); } @Override protected void onHandleIntent(Intent intent) { String token = FirebaseInstanceId.getInstance().getToken(); Log.i(TAG, "FCM Registration Token: " + token); } } MyFirebaseInstanceIDService.java public …

9
您如何通过CURL向所有设备发送Firebase通知?
我正在尝试向所有应用程序用户发送通知(在Android上),实际上是在重复通过Firebase管理控制台发送通知时发生的情况。这是我开始的CURL命令: curl --insecure --header“ Authorization:key = AIzaSyBidmyauthkeyisfineL-6NcJxj-1JUvEM” --header“ Content-Type:application / json” -d“ {\” notification \“:{\” title \“:\” note -Title \“,\” body \“:\” note-Body \“}}”“ https://fcm.googleapis.com/fcm/send 这是解析出来的JSON,在您看来更容易: { "notification":{ "title":"note-Title", "body":"note-Body" } } 返回的响应只是两个字符: 至 就是这样,单词“ to”。(标题报告为400)我怀疑这与JSON中没有“ to”有关。人们甚至会为“到”做些什么?我没有定义主题,设备还没有注册任何东西。但是,他们仍然能够从Firebase管理面板接收通知。 由于Firebase通知处理的惊人局限性,我想尝试“仅数据” JSON包,即如果您的应用程序位于前台,则通知将由您的处理程序处理,但是如果您的应用程序位于后台,则它将得到由Firebase服务内部处理,并且从未传递给您的通知处理程序。显然,如果您通过API提交了通知请求,则可以解决此问题,但是仅当您仅使用数据时才可以解决。(这将破坏用同一条消息处理iOS和Android的能力。)在我的任何JSON中用“数据”替换“通知”均无效。 好的,然后我在这里尝试解决方案:Firebase Java Server将推送通知发送到所有设备 ,在我看来,这是“尽管可以通过管理控制台向所有人进行通知,但实际上不可能通过API进行通知。 ” 解决方法是让每个客户端都订阅一个主题,然后将通知推送到该主题。所以首先在onCreate中的代码: FirebaseMessaging.getInstance().subscribeToTopic("allDevices"); 然后我发送新的JSON: { "notification":{ "title":"note-Title", …

29
FCM获取MismatchSenderId
我有一个使用Google FCM发送推送通知的应用程序。 当我向一组用户发送推送通知时,我得到MismatchSenderId其中一些用户的响应。即使所有用户都具有完全相同的应用程序。一些用户如何获得成功响应,而其他用户如何获得MismatchSenderId? 我进行了很多研究,并确保已添加FCM所需的所有先决条件。 有什么建议么? 编辑: 样本回复: {"multicast_id":5340432438815499122,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]} 编辑2: 这是服务器端发送代码(PHP): $fields = array ( 'to' => $token, 'data' => $data ); $headers = array ( 'Authorization: key=AIza**************************', 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' ); curl_setopt( $ch,CURLOPT_POST, true ); curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers ); curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true ); curl_setopt( …

10
FirebaseInstanceId令牌检索失败SERVICE_NOT_AVAILABLE
我正在开发一个Android应用程序,它使用Firebase身份验证,数据库和存储。一切正常,直到此错误消息开始在logcat中显示。(我没有在firebae控制台上篡改任何配置) E/FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE 即使我已注释所有与Firebase相关的代码,也会显示此错误消息。因此,我无法继续进行身份验证和其他与Firebase相关的工作。 是的,我已连接到Internet,并且还从Firebase控制台获取了一个新的Google-Services.json文件,但它没有任何区别。

9
在Android中从Firebase发送通知时没有通知声音
我正在从Firebase向我的Android应用程序发送推送通知。但是,当我的应用程序处于后台firebase时,不会调用onMessageReceived方法,firebase会将通知发送给系统以在系统任务栏中显示通知。通知出现在系统托盘中,但是没有声音发出通知,即使我在系统设置中允许我的应用程序发出通知声音。 从Firebase收到通知时我该怎么做以播放通知声音。 这就是我从Firebase向我的应用程序Blogpost链接发送通知的方式。 如何在Android应用程序中添加Firebase

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.