我的网络应用将在Firebase托管上运行,但是我需要通过firebase serve
上的localhost:5000
在本地对其进行测试
尝试读取Firebase Storage上的文件时出现CORS错误。
我遵循了documentation,并在firebase.json中添加了相对标题部分:
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"headers": [ {
"source": "**",
"headers": [ {
"key": "Access-Control-Allow-Origin",
"value": "*"
} ]
}]
},
"storage": {
"rules": "storage.rules"
}
}
但这并没有解决。我仍然因CORS错误而受阻。
编辑解决方案
我通过使用python库和一个简短的脚本来解决此问题:
#!/usr/bin/env python3
import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage
CREDFILE = home + 'credentials.json'
cred = credentials.Certificate(CREDFILE)
firebase_admin.initialize_app(cred, {
'storageBucket': '<myapp>.appspot.com'
})
bucket = storage.bucket()
bucket.cors = [{
'origin': ['*'],
'method': ['GET'],
'maxAgeSeconds': 86400
}]
bucket.update()