【问题标题】:Getting Firebase: No Firebase App '[DEFAULT]' has been created error获取 Firebase:没有创建 Firebase 应用“[DEFAULT]”错误
【发布时间】:2020-11-15 15:36:19
【问题描述】:

好的,所以我想我知道为什么会发生此错误,因为 firebase 尚未初始化但我正在尝试访问它,但我不明白为什么,因为我相信我在 index.html 中对其进行了初始化。认为它是操作顺序/异步的事情?

无论如何我正在部署到 Firebase 托管,所以根据 their website

Initialize Firebase in your app (no need to include your Firebase config object when using reserved Hosting URLs): 

我应该能够将 <script src="/__/firebase/init.js"></script> 放在我的 SDK 加载下方以初始化 firebase。我不明白的是,这是否真的以与firebase.initializeApp() 行相同的方式初始化了 Firebase 应用程序?基本上我认为我的问题是脚本确实为我初始化了一个 firebase 应用程序,我只是想在它完成之前在我的 react 函数中访问它,或者我需要单独运行firebase.initializeApp()

尝试为身份验证实现 FirebaseUi 以尽可能正确地做出反应。

【问题讨论】:

标签: reactjs firebase firebase-realtime-database firebase-authentication


【解决方案1】:

React.useEffect(),顾名思义是一个副作用,不能保证它会在渲染之前运行。

https://codesandbox.io/s/holy-water-ni9ut?file=/src/App.js 为例 - 渲染、渲染、然后效果。事实上,它甚至不会在渲染之前被调用。

一些注意事项:

  • firebase.initializeApp 应在调用 ReactDOM.render() 之前调用(根据 cmets)
  • useEffect 必须有依赖关系,否则,它将在每次渲染时运行。 (firebase.auth().onStateChanged(user => setIsSignedIn(user) 效果应该用 [] 作为第二个参数调用)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 2017-02-09
    • 2017-03-26
    • 2018-06-25
    • 2018-01-13
    • 2020-11-19
    • 2020-04-30
    • 2021-12-03
    相关资源
    最近更新 更多