我正在尝试从firebase存储加载用户个人资料图片,但我一直遇到原因(1 of 1):
com.google.firebase.storage.StorageException类:用户无权访问此对象。
使用以下方式验证用户:
mFirebaseAuth.signInWithEmailAndPassword(mEmailView.getText().toString(), mPasswordView.getText().toString())
以下是我的火力计规则:
service firebase.storage {
match /b/brainbeats-e9839.appspot.com/o {
match /user/{userId}/{allPaths=**} {
allow read, write: if request.auth.uid == userId;
}
}
}
像这样滑行加载:
StorageReference storageReference = FirebaseStorage.getInstance().getReference();
StorageReference imageStorage = storageReference.child("images/" + user.getArtistProfileImage());
GlideApp.with(this)
.load(imageStorage)
.into(mArtistCoverImage);
答案 0 :(得分:0)
您的规则允许访问以下内容:
/user/{userId}/{allPaths=**}
所以用户下的任何路径都是用户ID位置,然后是任何
但您正在访问
/images/xyzpath
现在因为它不在/ user / variable userid /下,你会得到一个例外。
为什么不在用户节点下移动图像,如:
/user/{userId}/images/yourpath
如果auth规则匹配,这应该停止给出错误。如果未经授权的用户访问另一个用户ID,它仍然会崩溃,所以最好将所有内容放入try catch块中