在 Firebase Firestore 中保存数据时在控制台上出现错误

Posted

技术标签:

【中文标题】在 Firebase Firestore 中保存数据时在控制台上出现错误【英文标题】:Getting an Error on console while saving data in firebase firestore 【发布时间】:2019-02-12 10:18:47 【问题描述】:

这是我的 javascript 代码。它只是从 firebase Docs 中复制的

<script src="https://www.gstatic.com/firebasejs/5.4.2/firebase.js"/></script>
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-firestore.js"></script>
<script>
  // Initialize Firebase
    var config = 
        apiKey: ".",
        authDomain: ".",
        databaseURL: ".",
        projectId: ".",
        storageBucket: ".",
        messagingSenderId: ".[enter image description here][1]"
    ;
  firebase.initializeApp(config);

    // Initialize Cloud Firestore through Firebase
    
    var db = firebase.firestore();
    function submitCountry()
    console.log('in funtion');
    db.collection("cities").doc("asdasLA").set(
        name: "Los Angeles",
        state: "CasdasA",
        stasdaate: "CasdasdasA",
        stasaasddaate: "CAasd",
        country: "USA"
    )
    .then(function() 
        console.log("Document successfully written!");
    )
    .catch(function(error) 
        console.error("Error writing document: ", error);
    );

</script>

当我刷新页面时,它会显示未捕获的错误。

code: "app/duplicate-service", message: "Firebase: Firebase 服务 名为“firestore”的已注册(应用程序/重复服务)。”,名称: "firestore", stack: "firestore: Firebase: Firebase 服务命名 '火灾...m/firebasejs/5.3.0/firebase-firestore.js:1:326255" firebase @ index.esm.js:17591(匿名)@ index.esm.js:41 index.esm.js:17591

未捕获的错误:无法实例化 firebase-firestore - 请务必 首先加载 firebase-app.js。

点击我的保存按钮后,它会显示下面提到的错误。

当我在没有任何 JS 或 Bootstrap 的简单项目中使用相同的代码时,它可以正常工作,但是我使用 Bootstrap 放置在我的真实项目中的相同代码会显示错误

[干预] 检测到慢速网络。有关更多详细信息,请参阅。 加载时将使用后备字体:

【问题讨论】:

什么错误..... @Badgy 我发布了我的错误。 【参考方案1】:

通过做

<script src="https://www.gstatic.com/firebasejs/5.4.2/firebase.js"/></script>
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-firestore.js"></script>

您两次加载“firestore”Firebase 服务,请参阅文档:https://firebase.google.com/docs/web/setup

你应该这样做

<script src="https://www.gstatic.com/firebasejs/5.4.2/firebase.js"></script>

<!-- Firebase App is always required and must be first -->
<script src="https://www.gstatic.com/firebasejs/5.4.2/firebase-app.js"></script>

<!-- Add additional services that you want to use -->
<script src="https://www.gstatic.com/firebasejs/5.4.2/firebase-firestore.js"></script>

另请注意,您的代码中有混合版本(即 5.4.2 和 5.3.0)。很可能是要避免的事情。


根据您在下面的评论,为了检查它是否正确写入数据库,修改您的代码如下并打开 html 页面(set() 方法将自动触发)

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

<script>
  // Initialize Firebase
    var config = 
        apiKey: ".",
        authDomain: ".",
        databaseURL: ".",
        projectId: ".",
        storageBucket: ".",
        messagingSenderId: ".[enter image description here][1]"
    ;
    firebase.initializeApp(config);

    // Initialize Cloud Firestore through Firebase

    var db = firebase.firestore();

    db.collection("cities").doc("asdasLA").set(
        name: "Los Angeles",
        state: "CasdasA",
        stasdaate: "CasdasdasA",
        stasaasddaate: "CAasd",
        country: "USA"
    )
    .then(function() 
        console.log("Document successfully written!");
    )
    .catch(function(error) 
        console.error("Error writing document: ", error);
    );

</script>

【讨论】:

您是否设置了一些特定的安全规则来阻止写入? 你在调用submitCountry()函数吗?我也看到你没有正确结束函数。 是的,我正在调用 Submit Country() 然后应该保存数据 您是否尝试使用我在答案中提供的 HTML 页面?为 config 对象输入正确的值,将其保存为 html 在您的计算机上,然后使用您选择的浏览器打开它。它应该写入数据库。

以上是关于在 Firebase Firestore 中保存数据时在控制台上出现错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Firebase Firestore 中保存数据时在控制台上出现错误

如何将从firebase存储上传的图像保存到firestore数据库中的currentUser

如何将firebase存储下载URL保存到firestore集合?

Firebase Firestore 保存地标与仅坐标

如何使用firebase-admin在firestore中将日期保存为时间戳?

Firestore上的空uid尝试使用flutter和firebase保存数据