[英]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.