相关疑难解决方法(0)

Firebase FCM强制onTokenRefresh()被调用

我正在将我的应用程序从GCM迁移到FCM.

当新用户安装我的应用程序时,onTokenRefresh()会自动调用该应用程序.问题是用户尚未登录(无用户ID).

如何onTokenRefresh()在用户登录后触发?

android firebase-cloud-messaging

107
推荐指数
2
解决办法
12万
查看次数

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身份验证失败:expired_token(身份验证令牌已过期)

我遇到Android Firebase Auth使用com.google.gms:google-services:3.0.0和的问题com.google.firebase:firebase-auth:9.0.1.

使用Firebase(Google或Facebook)验证后1小时,我收到以下错误消息:

W/PersistentConnection: pc_0 - Authentication failed: expired_token (Auth token is expired)

为什么Firebase令牌在1小时后过期以及如何延长此有效期?

UPDATE

我仍然遇到此问题,Firebase令牌在1小时后过期.现在我收到以下消息: W/PersistentConnection: pc_0 - Authentication failed: invalid_token (Invalid claim 'kid' in auth header.)

我感谢任何帮助.

android google-authentication facebook-authentication firebase-authentication

13
推荐指数
1
解决办法
1万
查看次数

应用更新时是否刷新了FCM令牌?

我在我的Android应用程序中使用FCM进行推送通知.我有以下类来获取fcm令牌.

public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
    @Override
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    }
}
Run Code Online (Sandbox Code Playgroud)

安装我的应用程序并且我能够获取令牌时,可以正确调用此方法.但是我不确定我的应用程序是否已更新(从Play商店),然后将调用此方法.文档只是说只要令牌发生变化就会调用该方法.但更新应用程序可能不会更改令牌.

android firebase-cloud-messaging

13
推荐指数
2
解决办法
2万
查看次数

FCM令牌丢失

我正在尝试使用Postman测试FCM,但即使FCM令牌存在,我总是会收到以下错误.我在Cloud Messaging选项卡中获得了令牌:Firebase Cloud Messaging令牌.

<HTML>
<HEAD>
    <TITLE>The request was missing an Authentification Key (FCM Token). Please, refer to section &quot;Authentification&quot; of the FCM documentation, at https://firebase.google.com/docs/cloud-messaging/server.</TITLE>
</HEAD>
Run Code Online (Sandbox Code Playgroud)

这是我发送的内容.

POST /fcm/send HTTP/1.1
Host: fcm.googleapis.com
Cache-Control: no-cache
Postman-Token: 9109eb13-245f-0786-21a5-6207f5426b44

Content-Type:application/json
Authorization:key=AAAAfnYrKvU:APA91bFwgeM3zuFId6UDzvIHk9qZ3lKHnX-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{  "data": {     "message": "This is a Firebase Cloud Messaging Topic Message!",    } }:
Run Code Online (Sandbox Code Playgroud)

postman firebase-cloud-messaging

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

Google GCM,令牌与注册ID

我对注册ID和令牌之间的关系感到困惑.在Google的GCM教程中,我们在开始时注册了注册ID.但是,我们也获得了一个令牌.现在,在图中,我们将注册ID发送到目标服务器.但是,我们也发送令牌吗?我知道令牌是从注册ID派生的.令牌是否用作GCM和应用程序之间的身份验证机制,服务器永远不知道令牌?

android google-cloud-messaging

9
推荐指数
2
解决办法
2万
查看次数

取消订阅FCM Web中的主题

我在我的网站上成功设置了FCM,它运行良好.我正在使用JavaScript通过订阅向"电影"主题发送通知.

fetch('https://iid.googleapis.com/iid/v1/'+tokenz+'/rel/topics/movies', {
          method: 'POST',
          headers: new Headers({
            'Authorization': 'key=****'
          })
Run Code Online (Sandbox Code Playgroud)

我没有找到任何文档来使用JS取消订阅Web主题.取消订阅单个主题的最佳方法是什么?还有一种方法可以取消订阅所有主题吗?

javascript push-notification firebase firebase-cloud-messaging

9
推荐指数
1
解决办法
3407
查看次数

FCM:onNewToken vs FirebaseInstanceId

Firebase已弃用此com.google.firebase:firebase-messaging:17.1.0版本中的一些消息传递调用.这篇文章很好地解决了这些变化.

问题:有人可以告诉我,如果不实施这是不好的做法onNewToken,而只是在每个应用程序启动时调用下面的块这对于Android人来说可能看起来过分,但从iOS的角度来看感觉就像家一样.

FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener(this) { instanceIdResult ->
    // Just use this call 
    val newToken = instanceIdResult.token
    Log.i("newToken", newToken)
}



@Override
public void onNewToken(String s) {
    super.onNewToken(s);
    // Leave this unimplemented
}
Run Code Online (Sandbox Code Playgroud)

我更熟悉iOS,它onNewToken每个应用程序发布时调用它.因此,对于iOS,我在那里放置逻辑以确定我的后端是否需要更新.

getInstanceId()文档说This generates an Instance ID if it does not exist yet, which starts periodically sending information to the Firebase backend.这让我想我可以调用FirebaseInstanceId.getInstance().instanceId.addOnSuccessListener每次启动.

android firebase firebase-cloud-messaging

9
推荐指数
3
解决办法
2万
查看次数

如何从Firebase获取所有设备令牌?

如何从Firebase获取设备令牌(FCM注册令牌)?

我正在使用firebase及其服务器使用node.js制作移动应用程序.

我想push notification从服务器发送消息,但我不知道如何获取设备令牌.

  1. 如何从外部服务器获取设备令牌?我现在正在使用Firebase管理SDK.

  2. 是否仅在应用程序连接到fcm服务器时生成设备令牌?

  3. 当用户首次运行应用程序并注册FCM服务器时,我应该将令牌保存到另一个数据库吗?

firebase react-native firebase-cloud-messaging firebase-admin

6
推荐指数
1
解决办法
9545
查看次数