我设置了一个Firebase Web项目,但无法使存储上传正常工作。我遵循了firebase documentation中的说明。
我的存储分区权限是公开的(如果我将db.col.aggregate([
{
$match: { job_id: { $in: ["job_111", "job_112", "job_113"] } }
},
{
$group: {
_id: "$user_id",
jobs: { $push: "$job_id" }
}
},
{
$project: {
matched: {
$max: [ 1,
{
$size: {
$filter: {
input: "$jobs",
as: "job",
cond: { $in: [ "$$job", ["job_112", "job_113"] ] }
}
}
}
]
}
}
}
])
更改为实际名称也没有什么区别
{bucket}
我的代码是
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
错误是
export function upload (fileName, file) {
let ref = firebase.storage().ref()
ref.child(fileName).putString(file, 'data_url').then(snapshot => {
console.log('Uploaded file')
}).catch(e => console.error(e))
我尝试使用存储桶权限,并尝试按照here所述在Google云存储中添加权限,但没有帮助。任何想法将不胜感激!
答案 0 :(得分:0)
不要在存储桶中使用通配符,而是将其写入规则中,例如:
service firebase.storage {
match /b/xx-xxx.appspot.com/o {
match /{allPaths=**} {
allow read, write;
}
}
}
编辑:
仅公开阅读,请尝试:
service firebase.storage {
match /b/xx-xxx.appspot.com/o {
match /{allPaths=**} {
allow read;
allow write: if request.auth != null;
}
}
}