React Native:错误:[消息/未知] java.io.IOException:java.util.concurrent.ExecutionException:java.io.IOExcept

Posted

技术标签:

【中文标题】React Native:错误:[消息/未知] java.io.IOException:java.util.concurrent.ExecutionException:java.io.IOException:FIS_AUTH_ERROR【英文标题】:React Native : Error: [messaging/unknown] java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: FIS_AUTH_ERROR 【发布时间】:2021-09-03 17:26:21 【问题描述】:

我正在尝试在我的应用中实现推送通知。我已经使用react-native-firebase/app@react-native-firebase/messaging 库作为推送通知。我已遵循完整的文档并尝试实施推送通知。但是我显示了这个错误getting push token Error: [messaging/unknown] java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: FIS_AUTH_ERROR

代码:

import React, Fragment, useEffect from 'react';
import StyleSheet, View, Text, Button from 'react-native';
import messaging from '@react-native-firebase/messaging';

//1
const checkPermission = () => 
  messaging()
    .hasPermission()
    .then((enabled) => 
      if (enabled) 
        getToken();
       else 
        requestPermission();
      
    )
    .catch((error) => 
      console.log('error checking permisions ' + error);
    );
;

//2
const requestPermission = () => 
  messaging()
    .requestPermission()
    .then(() => 
      getToken();
    )
    .catch((error) => 
      console.log('permission rejected ' + error);
    );
;

//3
const getToken = () => 
  messaging()
    .getToken()
    .then((token) => 
      console.log('push token ' + token);
    )
    .catch((error) => 
      console.log('error getting push token ' + error);
    );
;

const Notification = () => 
  useEffect(() => 
    checkPermission();
    messaging().setBackgroundMessageHandler(async (remoteMessage) => 
      console.log('Message handled in the background!', remoteMessage);
    );

    
  );
  
  return (
    <View style=styles.container>
      <Text>Push Notification</Text>
     
    </View>
  );
;

const styles = StyleSheet.create(
  container: 
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  ,
  button: 
    margin: 10,
  ,
);

export default Notification;

【问题讨论】:

【参考方案1】:

我也有同样的问题,你可以试试这个解决方案:用android Studio打开React Native项目,查看工具栏,选择Build -> Clean Project,然后点击Run app (^R或在 Macbook 上使用 control + r)。它对我有用。

【讨论】:

我不知道是谁给了这个大拇指。它对我来说就像一种魅力。我想给你 100 个赞,但不幸的是我只能给一个。【参考方案2】:

如果您在 react native 项目,请转到文件夹 android 并在终端 ./gradlew clean 上尝试此命令,与 android studio 中的 Build -> clean project 相同。

https://docs.gradle.org/current/userguide/command_line_interface.html

【讨论】:

【参考方案3】:

请按照以下步骤解决此问题,

将 firebase 依赖项升级到 com.google.firebase:firebase-messaging:20.1.6

之后从 firebase 下载 google-services.json。将其替换为当前的。

如果您的 API 密钥已过期,请通过 Build &gt; Clean Project 清理项目。请

将以下代码添加到您在应用程序标记的清单中声明的​​***应用程序类的 onCreate 中。

FirebaseOptions options = new FirebaseOptions.Builder()
      .setApplicationId("APP ID") // Required for Analytics.
      .setProjectId("PROJECT ID") // Required for Firebase Installations.
      .setApiKey("GOOGLE API KEY") // Required for Auth.
      .build();
FirebaseApp.initializeApp(this, options, "FIREBASE APP NAME");

如果您正在调试,请不要忘记将调试 SHA-256 密钥添加到 firebase。

【讨论】:

以上是关于React Native:错误:[消息/未知] java.io.IOException:java.util.concurrent.ExecutionException:java.io.IOExcept的主要内容,如果未能解决你的问题,请参考以下文章

react-native APK 崩溃并出现“未知”错误

使用 Relay + React Native (create-react-native-app) 时出错:GraphQL 验证错误`未知类型“查看器”。`

React-Native 应用程序中来自 Babel 的未知选项错误

未知的执行上下文错误 - 将领域导入 Expo React Native IOS 应用程序

React Native 0.60 升级:未知类型名称“MutexType”

需要未知模块“反应”的反应本机错误