当我尝试实现身份验证时出现 Firebase.app() 错误

Posted

技术标签:

【中文标题】当我尝试实现身份验证时出现 Firebase.app() 错误【英文标题】:Firebase.app() error when i try to implement auth 【发布时间】:2021-02-06 17:34:09 【问题描述】:

我正在尝试将数据库连接到我的 App.js,它可以工作,但是当我尝试进行身份验证时,会出现此错误:

错误:您试图通过调用 firebase.app() 来使用未安装在您的 android 项目上的 firebase 模块。 确保您有:

    在“MainApplication.java”文件中导入了“io.invertase.firebase.app.ReactNativeFirebaseAppPackage”模块。 在 RN 'getPackages()' 方法列表中添加了 'new ReactNativeFirebaseAppPackage()' 行。

这是我在授权之前的 App.js(工作)

import * as firebase from 'firebase';
import 'firebase/firestore';

if (firebase.apps.length === 0)
  firebase.initializeApp(firebaseConfig);


export default class App extends React.Component 
  render() 
    return (
      <NavigationContainer>
        <RestaurantNavigator />
      </NavigationContainer>
    )
  

这是我经过身份验证后的 App.js(不工作,见之前的错误)

import * as firebase from 'firebase';
import 'firebase/firestore';
import auth from '@react-native-firebase/auth';

if (firebase.apps.length === 0)
  firebase.initializeApp(firebaseConfig);


function LoginApp()
  const [initializing, setInitializing] = useState(true);
  const [user, setUser] = useState();

  function onAuthStateChanged(user)
    setUser(user);
    if (initializing) setInitializing(false);
  

  useEffect(() => 
    const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
    return subscriber; // unsubscribe on unmount
  , []);

  if (initializing) return null;

  if (!user) 
    return (
      <View>
        <Text>Login</Text>
      </View>
    );
  


export default class App extends Component 
  render() 
    return (
      <View style = styles.container>
        <LoginApp />
        <NavigationContainer>
          <RestaurantNavigator />
        </NavigationContainer>
      </View>
    )
     

我做错了什么?

【问题讨论】:

嘿@vale,你找到解决这个问题的办法了吗? 【参考方案1】:

添加 在主 application.java 文件中 “导入 io.invertase.firebase.auth.RNFirebaseAuthPackage;” 并在包装中 "packages.add(new RNFirebaseAuthPackage());"

并在 android>app>build.gradle 文件中的依赖项中添加 “实现‘com.google.firebase:firebase-auth:19.4.0’”

【讨论】:

但我没有那些目录.. 我正在使用 expo 来运行应用程序 请查看此链接:github.com/invertase/react-native-firebase/issues/977 没用,我没有那些目录 我将这些行添加到其他同名但不同根的文件中,它仍然不起作用 " import "firebase/auth" " 而不是 "import auth from '@react-native-firebase/auth'"

以上是关于当我尝试实现身份验证时出现 Firebase.app() 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 twitter 登录 Quickblox 时出现错误的身份验证数据错误

发送身份验证承载令牌时出现 Cors 策略错误 - node.js(谷歌云功能)

尝试使用 Firebase 身份验证时出现错误

尝试在 Laravel 中设置身份验证时出现“ReflectionException Function () 不存在”

尝试对 ASP.NET Core 3.1 使用多个身份验证方案时出现异常

尝试调用 AIA 时,Keycloak“处理对身份提供者的身份验证请求时出现意外错误”