Firebase存储映像上传:400错误的请求。无法访问存储桶

时间:2018-07-20 16:07:46

标签: firebase firebase-storage http-status-code-400

我设置了一个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云存储中添加权限,但没有帮助。任何想法将不胜感激!

1 个答案:

答案 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;
     }
   }
  }