【问题标题】:Cannot read properties of undefined (reading 'app')无法读取未定义的属性(读取“应用程序”)
【发布时间】:2021-11-03 16:17:06
【问题描述】:

我正在尝试将 firebase SDK 实现到我的 Flutter Web 项目中。

但是当我尝试开始申请时出现以下错误:

TypeError: Cannot read properties of undefined (reading 'app')
    at Object.app$ [as app] (http://localhost:49235/packages/firebase_core_web/src/interop/core.dart.lib.js:31:101)
    at initializeApp (http://localhost:49235/packages/firebase_core_web/firebase_core_web.dart.lib.js:108:25)
    at initializeApp.next (<anonymous>)
    at runBody (http://localhost:49235/dart_sdk.js:39250:34)
    at Object._async [as async] (http://localhost:49235/dart_sdk.js:39281:7)
    at firebase_core_web.FirebaseCoreWeb.new.initializeApp (http://localhost:49235/packages/firebase_core_web/firebase_core_web.dart.lib.js:85:20)
    at initializeApp (http://localhost:49235/packages/firebase_core/firebase_core.dart.lib.js:104:59)
    at initializeApp.next (<anonymous>)
    at runBody (http://localhost:49235/dart_sdk.js:39250:34)
    at Object._async [as async] (http://localhost:49235/dart_sdk.js:39281:7)
    at Function.initializeApp (http://localhost:49235/packages/firebase_core/firebase_core.dart.lib.js:103:20)
    at main$ (http://localhost:49235/packages/oikos_web_ec/src/widgets/modals/links/delteLink.dart.lib.js:26076:36)
    at main$.next (<anonymous>)
    at runBody (http://localhost:49235/dart_sdk.js:39250:34)
    at Object._async [as async] (http://localhost:49235/dart_sdk.js:39281:7)
    at main$ (http://localhost:49235/packages/oikos_web_ec/src/widgets/modals/links/delteLink.dart.lib.js:26074:18)
    at main (http://localhost:49235/web_entrypoint.dart.lib.js:39:29)
    at main.next (<anonymous>)
 at http://localhost:49235/dart_sdk.js:39230:33
    at _RootZone.runUnary (http://localhost:49235/dart_sdk.js:39087:58)
    at _FutureListener.thenAwait.handleValue (http://localhost:49235/dart_sdk.js:34073:29)
    at handleValueCallback (http://localhost:49235/dart_sdk.js:34633:49)
    at Function._propagateToListeners (http://localhost:49235/dart_sdk.js:34671:17)
    at _Future.new.[_completeWithValue] (http://localhost:49235/dart_sdk.js:34513:23)
    at http://localhost:49235/dart_sdk.js:33724:46
    at _RootZone.runUnary (http://localhost:49235/dart_sdk.js:39087:58)
    at _FutureListener.then.handleValue (http://localhost:49235/dart_sdk.js:34073:29)
    at handleValueCallback (http://localhost:49235/dart_sdk.js:34633:49)
    at Function._propagateToListeners (http://localhost:49235/dart_sdk.js:34671:17)
    at _Future.new.[_completeWithValue] (http://localhost:49235/dart_sdk.js:34513:23)
    at async._AsyncCallbackEntry.new.callback (http://localhost:49235/dart_sdk.js:34536:35)
    at Object._microtaskLoop (http://localhost:49235/dart_sdk.js:39374:13)
    at _startMicrotaskLoop (http://localhost:49235/dart_sdk.js:39380:13)
    at http://localhost:49235/dart_sdk.js:34887:9

这就是我在 index.html 文件中使用的脚本

 <script type="module">
        // Import the functions you need from the SDKs you need
        import { initializeApp } from "https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js";

        // Your web app's Firebase configuration
        const firebaseConfig = {
            apiKey: "-----....-----",
            authDomain: "-----....-----",
            projectId: "-----....-----",
            storageBucket: "-----....-----",
            messagingSenderId: "-----....-----",
            appId: "-----....-----"
        };

        // Initialize Firebase
        const app = initializeApp(firebaseConfig);
    </script>

我还在应用程序的开头正确地初始化了所有内容:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

现在有人如何解决这个错误吗?

【问题讨论】:

  • 我关注了this guide,对我来说效果很好。

标签: javascript firebase flutter-web


【解决方案1】:

我遇到了这个问题并解决了这个问题,将 index.html 中的脚本更改为这个

<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-firestore.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-storage.js"></script>

  <script>
    // Import the functions you need from the SDKs you need

    // TODO: Add SDKs for Firebase products that you want to use
    // https://firebase.google.com/docs/web/setup#available-libraries

    // Your web app's Firebase configuration
    const firebaseConfig = {
      apiKey: "...",
      authDomain: "...",
      projectId: "...",
      storageBucket: "...",
      messagingSenderId: "...",
      appId: "..."
    };

    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
  </script>

【讨论】:

    【解决方案2】:

    使用这个:

    https://www.gstatic.com/firebasejs/8.6.1/firebase-app.js
    

    代替

    https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js
    

    更多info

    【讨论】:

      【解决方案3】:

      我在使用 Firebase 9 时遇到了类似问题。降级到 8.x 看看是否已解决。

      【讨论】:

        猜你喜欢
        • 2021-11-23
        • 2022-10-08
        • 1970-01-01
        • 2023-03-11
        • 2022-01-15
        • 2021-12-31
        • 2021-12-13
        • 2021-11-28
        • 2021-11-15
        相关资源
        最近更新 更多