相关疑难解决方法(0)

Firebase云消息传递 - 处理注销

当用户退出我的应用程序并且我不再希望他接收到设备的通知时,我该如何处理这种情况.

我试过了

FirebaseInstanceId.getInstance().deleteToken(FirebaseInstanceId.getInstance().getId(), FirebaseMessaging.INSTANCE_ID_SCOPE)
Run Code Online (Sandbox Code Playgroud)

但我仍然收到我的设备的通知registration_id.

我还确保这是我应删除的令牌:

FirebaseInstanceId.getInstance().getToken(FirebaseInstanceId.getInstance().getId(), FirebaseMessaging.INSTANCE_ID_SCOPE)
Run Code Online (Sandbox Code Playgroud)

或者简单地说FirebaseInstanceId.getInstance().getToken()).

我也尝试过FirebaseInstanceId.getInstance().deleteInstanceId(),但是下次我打电话给FirebaseInstanceId.getInstance.getToken我时会收到空(它在第二次尝试时起作用).

我想,在deleteInstanceId我能够立即getToken()再次打电话之后,它看起来像是一个黑客.并且还有这个答案表明不应该这样做,但它建议删除显然不起作用的令牌.

那么处理这个问题的正确方法是什么?

android firebase firebase-cloud-messaging

59
推荐指数
6
解决办法
3万
查看次数

从两个Firebase项目接收一个Android应用程序的推送通知

我有一个Android应用程序,我希望它能够从两个不同的Firebase项目接收推送通知.

我读了博客"Android应用中有多个项目火力地堡的工作" https://firebase.googleblog.com/2016/12/working-with-multiple-firebase-projects-in-an-android-app.html其中谈到关于"从两个不同的Firebase项目访问数据库".
但是,没有关于从多个Firebase项目接收通知的信息.

那么,如何将我的应用程序与多个Firebase项目集成并从中接收推送通知?

android push-notification firebase firebase-cloud-messaging

10
推荐指数
1
解决办法
4299
查看次数

Firebase Instance Id 和 Token 的范围

我已经阅读了很多关于Firebase Instance Idand registration token hereherehere的文章。

我对他们的一些困惑范围和关系之间Instance IdToken。我想验证我的理解是对还是错。

  1. Instance Id每个App生成。不是每个安装的设备。例如,如果您有 Mail 应用程序和 Notes 应用程序,则firebase上将有两个实例 ID。
  2. Token每个安装的设备生成。例如,如果您有10 个用户安装您的应用程序,您将拥有10 个注册令牌。
  3. 一个Instance Id将有许多注册令牌。
  4. 通常,我们只需要registration tokens在我们的应用服务器上保留(而不是实例 ID)来发送推送通知

android firebase firebase-cloud-messaging

10
推荐指数
1
解决办法
5363
查看次数

接收来自FCM中2个不同发件人的消息

我正在为Android开发一个库,并且对使用新的Firebase“模型”(FCM)的Android GCM有疑问。在旧的和金色的GCM中,我可以收到来自不同发件人的推送通知,因为当您请求令牌注册时,它们会支持此通知,正如您在此方法中所看到的(现已弃用):https : //developers.google.com /android/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#register(java.lang.String ...)

该方法对我们特别有用,因为我们拥有自己的后端,可以与我们的库进行通信。因此,我们拥有自己的Google Project,并且我们库的用户也可以将自己的通知发送到应用程序(具有自己的发件人ID)。

使用新的FCM,您必须生成一些.json(google-services.json),其中包含Google Project信息(以及发件人ID),并且还会生成一些代码。

我的问题是,我们仍然可以从多个发件人ID中接收相同的onMessageReceived吗?我的意思是,我知道有可能来自同一Google / Firebase帐户中的多个项目,但是在同一个应用程序中,多个Firebase帐户中有可能吗?还是我必须在自己的Firebase帐户中添加所有使用我们库的应用程序?

android push-notification firebase google-cloud-messaging

5
推荐指数
0
解决办法
2035
查看次数

如何在FirebaseInstanceIdService之外访问Firebase令牌?

我正在从GCM升级到FCM。在onTokenRefresh之外获取Firebase设备令牌的正确方法是什么?

我正在尝试获取设备令牌,以便以后可以在服务器上重新启用它。我最初是按照此处显示的方法1 的文档获取设备令牌的。但是,当我尝试直接通过方法2访问设备令牌时,会得到一个不同的令牌。我是否在方法2中错误地获取了设备令牌?

方法1:在FirebaseInstanceIdService.onTokenRefresh()中

String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Run Code Online (Sandbox Code Playgroud)

方法2:直接访问设备令牌

FirebaseInstanceId instanceID = FirebaseInstanceId.getInstance();
String registrationToken = instanceID.getToken(this.projectNumber, "FCM");
Run Code Online (Sandbox Code Playgroud)

android firebase google-cloud-messaging firebase-cloud-messaging

5
推荐指数
1
解决办法
1890
查看次数

FCM | 多个发件人ID

从GCM迁移到FCM.

在GCM中,我们可以为多个发送者ID调用getToken()方法,如下所示:

String senderIds = "112233445566,889922338899";
String token = instanceID.getToken(senderIds,
                        GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Run Code Online (Sandbox Code Playgroud)

Q1 - 进入FCM后,是否保持相同或者我需要进行任何更改才能获得多个发送者ID的令牌?

这个引用中,我知道我可以为每个发送者ID调用getToken("senderIds1","FCM"),但我希望在进入FCM时进行最少的代码更改.

Q2不适用于FCM(与GCM相同)或我必须调用 getToken("senderIds1","FCM"); getToken("senderIds2","FCM")?

getToken("senderIds1, senderIds2", "FCM") 
Run Code Online (Sandbox Code Playgroud)

android push-notification firebase google-cloud-messaging firebase-cloud-messaging

3
推荐指数
1
解决办法
1588
查看次数