代码之家  ›  专栏  ›  技术社区  ›  letsCode

Service firestore不可用或没有带有getFirestore的Firebase应用程序

  •  0
  • letsCode  · 技术社区  · 5 月前

    我尝试了几种方法让Firestore在我的javascript模块文件中工作。

    当我这样做的时候。。。。

    import {initializeApp} from "https://www.gstatic.com/firebasejs/10.11.1/firebase-app.js";
    import {getStorage, ref, uploadBytes, getDownloadURL} from "https://www.gstatic.com/firebasejs/10.11.1/firebase-storage.js";
    import { getFirestore } from 'https://www.gstatic.com/firebasejs/11.1.0/firebase-firestore.js'
    
    
    var firebaseConfig = {
        apiKey: "",
        authDomain: "",
        projectId: "",
        storageBucket: "",
        messagingSenderId: "",
        appId: ""
    };
    
    
    const app = initializeApp(firebaseConfig);
    const storage = getStorage(app);
    const db = getFirestore();
    

    我在getFirestore()方法上得到以下错误。

    未捕获Firebase错误:Firebase:没有Firebase应用程序“[DEFAULT]” created-首先调用initializeApp()(app/no-app)。

    当我尝试这个时 const db = getFirestore(app); 相反,我得到了以下错误。

    消防站不可用

    如何在我的web应用程序上实现Firestore? 我没有使用Firebase函数

    1 回复  |  直到 5 月前
        1
  •  1
  •   Doug Stevenson    5 月前

    SDK导入的版本不匹配。在这里,它们是对齐的,这样你就可以更容易地看到版本是如何不匹配的:

    https://www.gstatic.com/firebasejs/10.11.1/firebase-app.js
    https://www.gstatic.com/firebasejs/10.11.1/firebase-storage.js
    https://www.gstatic.com/firebasejs/11.1.0/firebase-firestore.js
    

    11.1.0 !== 10.11.1

    您应该始终使用最新版本的SDK,如 documentation ,并确保它们始终与您的所有导入相匹配:

    您是否使用ESM并希望使用浏览器模块?替换所有导入行以使用以下模式: import { } from 'https://www.gstatic.com/firebasejs/11.1.0/firebase-SERVICE.js' (其中SERVICE是一个SDK名称,如firebase firestore)。

    使用浏览器模块是一种快速入门的方法,但我们建议在生产环境中使用模块打包器。