当尝试使用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");