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

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

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

  1. 在“MainApplication.java”文件中导入了“io.invertase.firebase.app.ReactNativeFirebaseAppPackage”模块。
  2. 在 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,你找到解决这个问题的办法了吗?

标签: node.js firebase react-native firebase-authentication


【解决方案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 来运行应用程序
  • 没用,我没有那些目录
  • 我将这些行添加到其他同名但不同根的文件中,它仍然不起作用
  • " import "firebase/auth" " 而不是 "import auth from '@react-native-firebase/auth'"
猜你喜欢
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多