我正在創建一個簡單的反應原生 todo 應用程式,它將使用 firebase。我已經在我的專案中初始化了 Firebase,但我一直收到相同的“Firebase:沒有創建 Firebase 應用程式 [DEFAULT] 呼叫 Firebase App.initializeApp() (app/no-app)”。我的 App.js 的代碼如下。我正在使用 Firebase 9.6.8。
import Login from "./screens/Login";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import SignUp from"./screens/SignUp";
import ResetPassword from "./screens/ResetPassword";
import ToDo from "./screens/ToDo";
import {initializeApp } from "firebase/app";
const firebaseConfig = {
apiKey:"AIzaSyA0ccz5NOHQE6FU8d6Ic4NA1-XwZgTPT_w",
authDomain:
"todoapp-****.firebaseapp.com",
projectId: "todoapp-****",
storageBucket: "todoapp-****.appspot.com",
messagingSenderId: "*****",
appId: "*****",
measurementId: "****" };
const app = initializeApp(firebaseConfig);
const Stack = createNativeStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen
name="Login"
component={Login}
options={{ headerShown: false }}
/>
<Stack.Screen
name="SignUp"
component={SignUp}
options={{ headerShown: false }}
/>
<Stack.Screen
name="ResetPassword"
component={ResetPassword}
options={{ headerShown: false }}
/>
<Stack.Screen
name="ToDo"
component={ToDo}
options={{ headerShown: false }}
/>
</Stack.Navigator>
</NavigationContainer> ); }```
uj5u.com熱心網友回復:
我遇到了這個問題,并通過將 Firebase 初始化放在另一個模塊中來解決它,我可以將它匯入到任何需要 Firebase 應用程式作業的檔案中。
雖然我只是假設其他組件像SignUp并且ResetPassword也在使用 Firebase 進行身份驗證,但這可能就是錯誤的來源。這些模塊不知道在它們被匯入的檔案中初始化的 firebase 應用程式。
例如,我正在制作一個行程安排應用程式,所以我制作了一個initFirebase.js如下所示的應用程式:
import { initializeApp } from 'firebase/app'
import { getFirestore, collection } from 'firebase/firestore'
// firebase setup
const firebaseConfig = {
// your config here
}
initializeApp(firebaseConfig)
const db = getFirestore()
const allTrips = collection(db, 'trips')
export default allTrips
然后在任何需要與應用程式互動的組件中,我可以這樣做,import { allTrips } from '../initFirebase'或者import '../initFirebase'如果他們不關心使用 Firestore,但仍然依賴于正在初始化的 Firebase 應用程式。您可以只執行后者,并擁有一個不匯出任何內容的模塊,但會在使用它的任何組件嘗試運行之前初始化應用程式,在這種情況下,您的整個應用程式initFirebase.js將如下所示:
import { initializeApp } from 'firebase/app'
// firebase setup
const firebaseConfig = {
// your config here
}
initializeApp(firebaseConfig)
希望有幫助。我的作業假設您的其他模塊需要在 Firebase 應用程式運行之前對其進行初始化才能作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492831.html
