Cloud Firestore 的读/写错误:'Access-Control-Allow-Origin'标头的值'null'



我有一个Javascript Web应用程序。我尝试读取或写入 Cloud Firestore 数据库,但它在浏览器控制台中返回此错误。

错误:

无法加载 https://firestore.googleapis.com/google.firestore.v1beta1.Firestore/Write/channel?VER=8&RID=21505&CVER=21&X-HTTP-Session-Id=gsessionid&%24httpHeaders=X-Goog-Api-Client%3Agl-js%2F%20fire%2F4.8.2%0D%0Agoogle-cloud-resource-prefix%3Aprojects%2FProjectName%2Fdatabases%2F(default(%0D%0A&zx=v9xcdtq156tr&t=1:
"访问控制允许源"标头的值"null"不等于提供的源。因此,不允许访问源"空"。

安全规则设置为公共读/写

service cloud.firestore {
  match /databases/{database}/documents {
   match /{document=**} {
     allow read, write;
   }
 }
}

这是我的测试代码

<script src="https://www.gstatic.com/firebasejs/4.11.0/firebase.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.11.0/firebase-firestore.js"></script>
<script>
  var config = {
    apiKey: "XXXXXXXXXXX",
    authDomain: "XXXXXXXXXXXX",
    databaseURL: "XXXXXXXXXXXX",
    projectId: "XXXXXXXXXXXX",
    storageBucket: "XXXXXXXXXXXX",
    messagingSenderId: "XXXXXXXXXXXX"
  };
  firebase.initializeApp(config);
  // Firebase Variables
  var db = firebase.firestore();
  db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
  }).then(function () {
    console.log("Document successfully written!");
  }).catch(function (error) {
    console.error("Error writing document: ", error);
  });
</script>

谷歌浏览器版本65.0.3325.162是问题所在。使用Microsoft Edge进行测试并且它工作<</p>

div class="one_answers">

根据CORS错误,您似乎在不使用任何类型的开发服务器(例如[Nodemon][1],[webpack-dev-server][2]或[SimpleHTTPServer][3](的情况下运行测试代码。过去,当我直接使用没有任何HTTP服务器的浏览器打开index.html文件时,我也会遇到类似的错误。

如果您的计算机上安装了 python,请尝试在包含索引 HTML 文件的目录中运行 HTTP 服务器。

python -m SimpleHTTPServer 8000

相关内容

最新更新