簡體   English   中英

Firebase function 嘗試寫入 firebase 存儲“Firebase 存儲:用戶無權訪問”時出錯

[英]Firebase function getting error when trying to write to firebase storage "Firebase Storage: User does not have permission to access"

從 console.cloud.google.com/logs,我得到了這個錯誤。

ERROR: "_baseMessage: "Firebase Storage: User does not have
 permission to access '[my_file_name_here]'

我的印象是 firebase 函數具有管理員訪問權限來操作 Firestore 和 Firebase 存儲數據,無論權限如何,如這里討論的 我所經歷的似乎恰恰相反。 也許只是因為我使用的是存儲而不是 Firestore?

如果讀寫權限為真,firebase 函數可以成功寫入存儲。 將規則設置為if false; 或者if request.auth;= null;

有沒有一種方法可以指定firebase 函數的權限,以便能夠讀取/寫入數據到存儲? 我不想給每個人讀/寫訪問權限。

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if false;
    }
  }
}

我的答案是在我的 firebase 函數中使用firebase_admin npm package 來上傳文件。 使用這個庫提供了具有管理員權限的上下文。 因此,即使規則拒絕,我們也可以讀/寫。

    static uploadFileAsAdmin(bufferFile: Buffer, storageDestination: string
): Promise<void> {
    return firebaseAdmin.storage().bucket()
          .file(storageDestination)
          .save(bufferFile, { preconditionOpts: { ifGenerationMatch: 0 } });
}

我之前使用firebase npm package 上傳文件。

此 SDK 適用於最終用戶客戶端訪問

因為它是為這種訪問而設計的,所以 Firestore 規則阻止了訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM