为什么我一直得到这个CORS错误与Firebase



当尝试使用Firebase实时数据库执行基本请求时,我一直得到相同的CORS错误。

我遵循了2个关于如何向Firebase实时数据库请求/发布数据的单独教程,每次我重新加载页面时,它都会显示:

Access to script at 'https://console.firebase.google.com/project/ProjectName*******/database/data/' (redirected from 'https://***ProjectName*****-default-rtdb.firebaseio.com/') from origin 'http://localhost:5005' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我在谷歌上搜索了这个问题,并尝试了许多解决方案,其中一些来自本网站,但没有任何帮助。

我安装了GSUTIL,并试图通过它修改CORS规则…如。通过GSUTIL运行gsutil cors set cors.json gs://your-bucket它只是返回'No file in directory'

然后我试着放一个cors。我的firestore中的Json文件仍然没有帮助

我真是不知所措,不知道现在该怎么办

我刚刚开始编程,对CORS一无所知

所以请注意…如有任何帮助,不胜感激

当导入getDatabase以使用Firebase RTDB时,您不希望使用以下任何一种:

import { getDatabase, ... } from "https://[PROJECT_ID]-default-rtdb.firebaseio.com/"
const { getDatabase, ... } = await import("https://[PROJECT_ID]-default-rtdb.firebaseio.com/")

这是因为它们都没有导入Firebase Web SDK。

要在构建环境中为RTDB导入Firebase Web SDK,您可以使用以下任意一种:

import { getDatabase, ... } from "firebase/database"
const { getDatabase, ... } = await import("firebase/database");

要在浏览器中为RTDB导入Firebase Web SDK,可以使用以下两种方式之一:

import { getDatabase, ... } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-database.js"
const { getDatabase, ... } = await import("https://www.gstatic.com/firebasejs/9.1.3/firebase-database.js");

数据库的URL通常进入Firebase配置对象,您传递给initializeApp,如下所示:

const firebaseConfig = {
apiKey: "apiKey",
authDomain: "projectId.firebaseapp.com",
databaseURL: "https://databaseName.firebaseio.com", // <-- here
storageBucket: "bucket.appspot.com"
};
const app = initializeApp(firebaseConfig);

当你需要使用它时,你只需要调用其中一个:

// uses default app & default database
const database = getDatabase(); 
// uses given app & default database
const database = getDatabase(app);

当您使用多个RTDB实例(从另一个项目,不同地区等共享)时,您将该实例的URL作为第二个参数传递,如下所示:

// uses default app & given database
const secondDatabase = getDatabase(getApp(), "https://secondDatabaseName.firebaseio.com");
// uses given app & given database
const secondDatabase = getDatabase(app, "https://secondDatabaseName.firebaseio.com");

相关内容

  • 没有找到相关文章

最新更新