React-Native:"FirebaseError:未创建Firebase应用程序“ [DEFAULT]”-请调用Firebase App.initializeApp()(app / no-app)"

3
我正在构建一款React Native应用程序,目前尝试通过Firebase Auth实现身份验证注册系统。我已按照网站上的指南/文档设置了Firebase配置文件。当我运行该应用程序并输入电子邮件和密码时,单击注册按钮后显示以下错误:
FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).

我已经在谷歌上搜索可能的解决方案,但似乎没有什么作用。我已经按照文档/教程初始化了 Firebase,希望有人能够解决这个问题。我将在下面包括配置文件代码,XXXX代替我的实际配置信息。
firebase.js
import * as firebase from 'firebase/app';
import "firebase/auth";

const firebaseConfig = {
  apiKey: "XXXX",
  authDomain: "XXXX",
  databaseURL: "XXXX",
  projectId: "XXXX",
  storageBucket: "XXXX",
  messagingSenderId: "XXXX",
  appId: "XXXX",
  measurementId: "XXXX"
};

firebase.initializeApp(firebaseConfig);

api.js

export function registerUser({email, password}) {
  firebase
    .auth()
    .createUserWithEmailAndPassword(email, password)
    .catch(function(error) {
      console.log(error);
    });
};

编辑/回答

如下方评论所述,正确的方式是通过React-Native-Firebase实现/导入。链接在评论中。


我参考的指南只是像上面代码中展示的那样使用Firebase。它使用了通过Firebase控制台的Web设置,而不是Android/iOS。 - Afx31
@Rizwanatta 抱歉耽搁了,我终于处理好了。Invertase可行!非常感谢!您能否给我的问题点个赞,这样我就可以获得声望,以便在未来点赞其他正确答案的帖子 :) - Afx31
请接受我的答案,因为它有所帮助。 - Rizwan Atta
有关编程的内容,请随时与我们联系,获取更多信息。 - Rizwan Atta
https://chat.stackoverflow.com/rooms/203966/react-native - Rizwan Atta
显示剩余9条评论
5个回答

4

看起来您正在使用Invertase Firebase项目的语法,而在后台则使用了来自firebase npm包的WEB SDK。

以下是您需要做的:

前往此处安装react-native-firebase。

确保pod可用且自动链接功能可用。您必须包含json和plist文件!只有遵循这些步骤,您的项目才能构建并且可以使用您在问题中发布的语法!


1

我认为需要在AppDelegate.m文件中添加以下设置...

 #import <Firebase.h>
  
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
      [FIRApp configure];
    }

0

你可以按照以下方式编写你的配置:

componetWillMount() {
const config = {
apiKey: “xxxxxxxxxxxxxxxxxxxxxxxx”,
authDomain: “auth-bdcdc.firebaseapp.com 20”,
databaseURL: “https://auth-bdcdc.firebaseio.com 7”,
projectId: “auth-bdcdc”,
storageBucket: “auth-bdcdc.appspot.com 2”,
messagingSenderId: “xxxxxxxxxx”
};
firebase.initializeApp(firebaseConfig);
}

0

检查ios文件夹中是否缺少GoogleService-Info.plist文件。


-1

这是我解决它的方法。

使用异步函数进行注册。

FirebaseConfig.js

import firebase from 'firebase/app';


const firebaseConfig = {
  apiKey: "XXXX",
  authDomain: "XXXX",
  databaseURL: "XXXX",
  projectId: "XXXX",
  storageBucket: "XXXX",
  messagingSenderId: "XXXX",
  appId: "XXXX",
  measurementId: "XXXX"
};

firebase.initializeApp(firebaseConfig); // It's expecting an objects

注册为异步函数:

Registration.js

export async function Registration(email, password, lastName, firstName) {
  try {
    await firebase.auth().createUserWithEmailAndPassword(email, password);
    const currentUser = firebase.auth().currentUser;
    const db = firebase.firestore();
    db.collection("users").doc(currentUser.uid).set({
      email: currentUser.email,
      lastName: lastName,
      firstName: firstName,
    });
  } catch (err) {
    Alert.alert("There is something wrong!!!!", err.message);
  }
}


如果这些作品对您有帮助,请不要忘记点赞。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接