React Native Firebase错误:Firebase:名为“[DEFAULT]”的Firebase应用程序已存在(app/duplicate-app)

qfe3c7zg  于 2023-08-07  发布在  React
关注(0)|答案(4)|浏览(149)

我在我的react-native expo项目中得到了这个错误:Firebase错误:Firebase:名为“[DEFAULT]”的Firebase应用程序已存在(app/duplicate-app)。我已经交叉检查了我的项目,我没有在项目的其他任何地方导入firebase。我还创建了一个firebase.js文件,并在那里初始化了firebase配置。下面是我的代码:
这是我的firebase.js文件

import firebase from "firebase";
const firebaseConfig = {
  apiKey: "XXXXXXXXXXXX",
  authDomain: "XXXXXXXXXXXX",
  databaseURL: "XXXXXXXXXXXX",
  projectId: "XXXXXXXXXXXX",
  storageBucket: "XXXXXXXXXXXX",
  messagingSenderId: "XXXXXXXXXXXX",
  appId: "XXXXXXXXXXXX",
};
const Firebase = firebase.initializeApp(firebaseConfig);
export default Firebase;

字符串
这是我想使用firebase的Signin.js文件。

import { StatusBar } from "expo-status-bar";
import React, { useState } from "react";
import {
  StyleSheet,
  Text,
  View,
  TextInput,
  TouchableOpacity,
  Picker,
  ScrollView,
} from "react-native";
import { FontAwesome } from "@expo/vector-icons";
import { LinearGradient } from "expo-linear-gradient";
import firebase from "./firebase";
import "firebase/auth";

function Signin() {
  firebase
    .auth()
    .signInWithEmailAndPassword("bhavansharora21@gmail.com", "bhavansh")
    .catch(function (error) {});
}
export default function LogIn({ navigation }) {
  const [selectedValue, setSelectedValue] = useState("java");

  return (
    <View style={styles.container}>
      <View style={styles.header}>
        <Text style={styles.header_text}>Register</Text>
      </View>
      <View style={styles.footer}>
        <ScrollView
          showsVerticalScrollIndicator={false}
          style={styles.ScrollView}
          show
        >
          <Text style={styles.fields}>Name</Text>

          <TextInput
            placeholder="Enter your Name"
            style={styles.input}
          ></TextInput>
          <Text style={styles.fields}>Email</Text>

          <TextInput placeholder="Enter Email" style={styles.input}></TextInput>

          <Text style={styles.fields}>Password</Text>

          <TextInput placeholder="Enter Password" style={styles.input} />
          <Text style={styles.fields}>Confirm Password</Text>

          <TextInput
            placeholder="Enter Confirm Password"
            style={styles.input}
          />
          <View style={styles.picker}>
            <TouchableOpacity style={styles.position}>
              <LinearGradient
                colors={["#08d4c4", "#01ab9d"]}
                style={styles.picker_gradient}
              >
                <Text style={styles.button_text}>Passenger</Text>
              </LinearGradient>
            </TouchableOpacity>
            <TouchableOpacity
              style={styles.position}
              onPress={() => navigation.navigate("SignIn")}
            >
              <Text style={styles.sign_button_text}>Rider</Text>
            </TouchableOpacity>
          </View>

          <TouchableOpacity style={styles.button} onPress={() => Signin()}>
            <LinearGradient
              colors={["#08d4c4", "#01ab9d"]}
              style={styles.gradient_style}
            >
              <Text style={styles.button_text}>Register</Text>
            </LinearGradient>
          </TouchableOpacity>
          <TouchableOpacity
            style={styles.sign_button}
            onPress={() => navigation.navigate("LogIn")}
          >
            <Text style={styles.sign_button_text}>Log In</Text>
          </TouchableOpacity>
        </ScrollView>
      </View>
    </View>
  );
}

35g0bw71

35g0bw711#

我假设你得到的错误,当你做热重装或等.无论如何,问题是,Firebase试图用完全相同的配置创建新的示例,但它不能。所以它会抛出一个错误。你可以通过简单的if检查来克服这个错误:

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

字符串

mqkwyuun

mqkwyuun2#

Erkin Kurt是正确的,请记住Firebase 8引入了一些突破性的更改:https://firebase.google.com/support/release-notes/js#version_800_-_october_26_2020
现在你可以这样使用**.default**:

const firebase = require('firebase/app').default

if (!firebase.apps.length) {
    firebase.initializeApp(firebaseConfig)
}

字符串

kse8i1jr

kse8i1jr3#

只是简单地重建你的应用程序。老实说,会有用的

vbkedwbf

vbkedwbf4#

我有这个问题,但在Flutter,
该错误不仅可能在多次初始化时发生,而且可能在不同的配置时发生,
我变了

await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);

字符串

await Firebase.initializeApp();


我认为这是因为我的google.service.json有不同的配置

相关问题