我在flutter应用程序中使用了firebase消息传递,但是当我运行我的项目时,它显示Stringtoken=FirebaseInstanceId.getInstance().getToken(senderId,“*”);

siotufzp  于 2023-01-14  发布在  Flutter
关注(0)|答案(2)|浏览(98)

我在flutter应用程序中使用了firebase消息传递,但当我运行项目时,它显示String token = FirebaseInstanceId. getInstance(). getToken(senderId,"");
当我运行我的应用程序时,它在控制台中显示此错误:
C:\用户\证书\应用数据\本地\发布\缓存\托管\发布. dartlang.org\防火墙消息传递-9.1.4\android\src\main\java\io\flutter\插件\防火墙\消息传递\Flutter防火墙消息传递插件. java:166:错误:无法找到符号字符串令牌= FirebaseInstanceId. getInstance(). getToken(发送方ID,"
");^符号:变量FirebaseInstanceId位置:类FlutterFirebase消息传递插件注意:某些输入文件使用或覆盖过时的API。使用-Xlint:deprecation重新编译以了解详细信息。
出了什么问题:执行任务":firebase_messaging:compileDebugJavaWithJava"失败。
当我导航到错误消息中声明的特定文件时,这里是其中的代码

private Task<Map<String, Object>> getToken(Map<String, Object> arguments) {
            return Tasks.call(
                cachedThreadPool,
                () -> {
                  String senderId =
                      arguments.get("senderId") != null
                          ? (String) arguments.get("senderId")
                          : Metadata.getDefaultSenderId(FirebaseApp.getInstance());
                  String token = FirebaseInstanceId.getInstance().getToken(senderId, "*");
                  return new HashMap<String, Object>() {
                    {
                      put("token", token);
                    }
                  };
                });
          }

我能做些什么来解决这个问题呢?现有的代码似乎不再起作用了

3htmauhk

3htmauhk1#

您应该使用

FirebaseMessaging.getInstance().token

来获取令牌,因为

FirebaseInstanceId.getInstance().getToken

不建议使用。

3pvhb19x

3pvhb19x2#

要检索应用示例的当前注册令牌,您需要调用FirebaseMessaging.instance.getToken();,如其官方指南中所述。

相关问题