Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Typescript:Firebase应用程序类型缺少删除、安装、名称和选项_Reactjs_Typescript_Firebase - Fatal编程技术网

Reactjs Typescript:Firebase应用程序类型缺少删除、安装、名称和选项

Reactjs Typescript:Firebase应用程序类型缺少删除、安装、名称和选项,reactjs,typescript,firebase,Reactjs,Typescript,Firebase,我对Typescript还不熟悉,并试图让它与Firebase一起工作。我有一个FirebaseProvider,它接收Firebase应用程序,配置方式如下: 从“firebase/app”导入firebase 导入“firebase/analytics” 导入“firebase/auth” 导入“firebase/firestore” 导入“firebase/functions” 导入“firebase/performance” 常量配置={ apiKey:process.env.REACT

我对Typescript还不熟悉,并试图让它与Firebase一起工作。我有一个FirebaseProvider,它接收Firebase应用程序,配置方式如下:

从“firebase/app”导入firebase
导入“firebase/analytics”
导入“firebase/auth”
导入“firebase/firestore”
导入“firebase/functions”
导入“firebase/performance”
常量配置={
apiKey:process.env.REACT\u APP\u FIREBASE\u API\u KEY,
authDomain:process.env.REACT\u APP\u FIREBASE\u AUTH\u DOMAIN,
databaseURL:process.env.REACT\u APP\u FIREBASE\u DATABASE\u URL,
projectId:process.env.REACT\u APP\u FIREBASE\u PROJECT\u ID,
appId:process.env.REACT\u APP\u FIREBASE\u APP\u ID,
measurementId:process.env.REACT\u APP\u MEASUREMENT\u ID
}
如果(firebase.apps.length>0)firebase.app()
else firebase.initializeApp(配置)
导出{firebase}
我的应用程序入口点看起来像:


我将FirebaseProvider的道具声明如下:

接口FirebaseProviderProps{
firebase:firebase.default.app.app
子项:ReactElement | ReactElement[]
}
但是,我发现出现以下错误:

Type 'typeof firebase' is missing the following properties from type 'App': delete, installations, name, options

我要使用的正确Firebase类型是什么?我已经翻遍了SDK,似乎找不到任何其他相关的类型。

看起来您在
firebase ProviderProps
中找到了字段
firebase
的类型,如
app.app
,但您已经在
firebase
中为其指定了值,根据您编写的代码,该值只是默认导出(不是应用程序):

然后将其传递给提供商:

{/* assigned the default export that was re-exported */}
<FirebaseProvider firebase={app}>
  <App />
</FirebaseProvider>
{/*分配了重新导出的默认导出*/}
在这一点上,重命名道具可能也有一定意义:

{/* assigned the default export that was re-exported */}
<FirebaseProvider app={app}>
  <App />
</FirebaseProvider>
{/*分配了重新导出的默认导出*/}

Legend!真不敢相信我居然没看到这个。它解决了我的问题,非常感谢。
let app: firebase.app.App;

if (firebase.apps.length > 0) {
  app = firebase.app();
} else {
  app = firebase.initializeApp(config);
}

// export that instead of 'firebase'
export { app }
{/* assigned the default export that was re-exported */}
<FirebaseProvider firebase={app}>
  <App />
</FirebaseProvider>
{/* assigned the default export that was re-exported */}
<FirebaseProvider app={app}>
  <App />
</FirebaseProvider>