Firebase onTokenRefresh() 未调用

2023-12-01

In my MainActivity在我的日志中,我可以看到使用的令牌FirebaseInstanceId.getInstance().getToken()并显示生成的令牌。但在我看来MyFirebaseInstanceIDService它延伸到的地方FirebaseInstanceIdService, the onTokenRefresh()没有被调用,在这个函数中据说令牌最初是在这里生成的。我需要打电话sendRegistrationToServer()这就是为什么我想知道为什么它不进入onTokenRefresh().

这是我的代码

public class MyFirebaseInstanceIDService  extends FirebaseInstanceIdService {


@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);

        sendRegistrationToServer(refreshedToken);
    }
}

FirebaseInstanceIdService 中的 onTokenRefresh 仅在生成新令牌时才会调用。如果您的应用程序之前已安装并生成了令牌,则不会调用 onTokenRefresh。尝试卸载并重新安装应用程序以强制生成新令牌,这将导致调用 onTokenRefresh。

另请确保您的 FirebaseInstanceIdService 在 AndroidManifest.xml 中正确定义

在你的清单文件中。

 <service
        android:name="com.bnt.etailers.fcm.MyFireBaseInstanceIDService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

    <service
        android:name="com.bnt.etailers.fcm.GCMNotificationIntentService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

FirebaseInstanceIdService 类

public class MyFireBaseInstanceIDService extends FirebaseInstanceIdService {


private static final String TAG = MyFireBaseInstanceIDService.class.getSimpleName();

@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);

    if (refreshedToken!=null) {
        SettingPreferences.setStringValueInPref(this, SettingPreferences.REG_ID, refreshedToken);
    }
    // TODO: Implement this method to send any registration to your app's servers.
    sendRegistrationToServer(refreshedToken);
}
// [END refresh_token]

/**
 * Persist token to third-party servers.
 *
 * Modify this method to associate the user's FCM InstanceID token with any server-side account
 * maintained by your application.
 *
 * @param token The new token.
 */
private void sendRegistrationToServer(String token) {
    // Add custom implementation, as needed.
}}

FirebaseMessagingService 类。

public class GCMNotificationIntentService extends FirebaseMessagingService {
// Sets an ID for the notification, so it can be updated


public GCMNotificationIntentService() {
    super();
}


@Override
public void onMessageReceived(RemoteMessage message) {

}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase onTokenRefresh() 未调用 的相关文章

随机推荐

  • MariaDB 的 Hibernate 命名策略 (UPPER_SNAKE_CASE)

    在我的应用程序中 我使用 Flyway 进行数据迁移 因此我定义了所有名称为UPPER SNAKE CASE 例如用户 gt USERS 候选组 gt CANDIDATE GROUP 我为不同的环境提供了2种配置 本地和docker 在本地
  • php:使用cURL获取html源代码

    我怎样才能得到html源代码http www example webpage com file html不使用file get contents 我需要知道这一点 因为在某些网络主机上allow url fopen已禁用 因此您无法使用fi
  • 如何修复在 Windows 上运行 Npm 时出现 SSL 证书错误?

    当我尝试使用 npm 安装软件包时 它不起作用 经过漫长的等待 我最终得到一个错误 无法建立隧道套接字 sutatusCode 403 npm install coffee script npm http GET https registr
  • Python tkinter AskopenFileName 没有响应

    我正在使用 tkinter asopenfilename 触发文件选择器 以便从本地目录读取文件 我的问题是 选择文件后 窗口冻结并且 python 没有响应 我已经尝试过这篇文章的答案 Tkinter Askopenfilename 不会
  • Oracle中如何检查索引是否被使用

    SELECT FROM SELECT TEMP ROWNUM RNUM FROM SELECT entry guid FROM alertdevtest ENTRY WHERE Upper alert name alertname AND
  • CSS 背景图像属性未加载

    我正在开发一个网站 目前位于主页上 我有一个以前编写的 CSS 标头 并且想用图像替换标头的背景 div 而不是像之前的设计那样采用纯色 我有一个标题图片 在img header jpg目录 我正在使用加载背景图像background im
  • 如何在Excel VBA中将值从数组传递到特定单元格(不是组合列表)中的下拉列表

    我正在尝试将值从数组传递到特定单元格中的下拉列表 假设我有一个包含值 1 2 3 的数组 并且我希望单元格 A1 包含一个包含这些值的下拉列表 有什么方法可以做到这一点吗 我试图实现这一目标 而不必首先将这些值分配给不同的单元格并使用数据验
  • 将 Ipopt 与英特尔 MKL 链接

    我正在尝试将 Ipopt 与 Intel MKL 链接起来 指示 英特尔的链接顾问建议 链接线 Wl start group MKLROOT lib intel64 libmkl intel ilp64 a MKLROOT lib inte
  • 交错文本文件内容的最 Pythonic 方式是什么?

    Python问题 如果我有一个文件列表 如何打印每个文件中的第 1 行 然后 第 2 行等 显然我是一个Python新手 Example file1 foo1 bar1 file2 foo2 bar2 file3 foo3 bar3 函数调
  • ArrayList容量增量方程

    在JDK 1 7中引入了ArrayList java中的方法ensureCapacity使用以下表达式增加数组容量 int newCapacity oldCapacity oldCapacity gt gt 1 看来新产能将比旧产能增加近5
  • 在链式构造函数中设置只读字段

    我有一个类 其中有两个在构造函数中设置的只读字段 我有一个派生类 希望将它们设置为不同的构造函数中的值 但是 尝试这样做会导致 CS1091 无法将只读字段分配给 构造函数或变量初始值设定项除外 错误 我不明白这是为什么 我am分配给构造函
  • Django:记录模板错误

    当我在 django 模板中出错时 placeholder 我没有收到任何错误 只是输出中我期望内容的空白 发生这种情况时 有没有办法在我的日志中查看某些内容 最好使用logging warning or logging error 就在这
  • 批量-用百分比符号替换

    我想用 替换字符串中的 mod set string string mod x 我应该输入什么作为 x 您可以通过启用延迟扩展来做到这一点 这样您就可以使用 作为分隔符 然后 将百分号加倍可以将百分比表示为替换字符 echo off set
  • Sitecore页面编辑器-如何扩展页面编辑器项目编辑面板

    需要在页面编辑器 项目编辑部分添加 发布 功能 在 更多 部分下是理想的 我怎样才能做到这一点 首先您需要创建一个命令类 最简单的版本是 using System using Sitecore Shell Applications WebE
  • 当逻辑条件意味着不应评估输出时,为什么 dplyr 会在此嵌套 if_else 中出错?

    我有一个嵌套的if else里面的声明mutate 在我的示例数据框中 tmp df2 lt data frame a c 1 1 2 b c T F T c c 1 2 3 a b c 1 1 TRUE 1 2 1 FALSE 2 3 2
  • 使用 SSO facebook 的故事链接流 - openURL 未被调用

    我已经在我的 iOS 4 3 应用程序中成功实现了单点登录 现在我想发布一个到用户 Facebook 墙的链接 这样当他 她也拥有该应用程序的朋友单击该链接时 他们应该被重定向到我的应用程序 我的解读方式http developers fa
  • 您可以将保留计数发送到 NSLog 以帮助学习吗?

    只是好奇是否有办法使用 NSLog 显示对象保留计数 我只想将它们打印到控制台以帮助了解保留 释放在一些简单代码中是如何工作的 干杯 加里 这不仅是可能的 而且也非常简单 NSLog retain count d obj retainCou
  • 检查字符串中是否存在元音

    我需要检查单词中是否存在元音 如果是 则应对单词 say 进行操作op word 我想避免 for 循环 因为我想到了这一点 for char in word if char in aeiou confused here 请推荐一种在执行时
  • SQL Server 2008 - 查询以分数格式获取结果

    我有一个包含这样的数据的表 MinFormat int MaxFormat int Precision nvarchar 2 3 1 2 精度值只能是 1 2 1 4 1 8 1 16 1 32 1 64 现在我想要查询结果为 2 3 2
  • Firebase onTokenRefresh() 未调用

    In my MainActivity在我的日志中 我可以看到使用的令牌FirebaseInstanceId getInstance getToken 并显示生成的令牌 但在我看来MyFirebaseInstanceIDService它延伸到