Firebase 错误:Firebase:名为 '[DEFAULT]' 的 Firebase 应用已存在(应用/重复应用)



我在我的react原生expo项目中遇到了这个错误:FirebaseError:Firebase:名为"[DEFAULT]"的Firebase应用程序已存在(应用程序/重复应用程序(。我已经交叉检查了我的项目,我没有在项目的其他地方导入firebase。我还制作了一个firebase.js文件,并在那里初始化了firebaseconfig。这是我的代码:

这是我的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>
);
}

我假设你在进行热重新加载等操作时会出现错误。无论如何,问题是,Firebase试图用完全相同的配置创建新实例,但它做不到。所以它抛出了一个错误。你可以通过简单的if检查来克服这个错误:

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

Erkin Kurt是对的,请记住Firebase 8引入了一些突破性的更改:https://firebase.google.com/support/release-notes/js#version_800_-_2020年10月26日

现在,如果您使用.default:,您可以使它像这样工作

const firebase = require('firebase/app').default
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig)
}

只需重新构建您的应用程序。老实说,它会工作

我有这个问题,但在颤振中,

这种错误不仅可以在多次初始化时发生,也可以在不同的配置、中发生

我更改了

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

await Firebase.initializeApp();

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

相关内容

最新更新