Cha*_*iva 12 android firebase firebase-realtime-database firebase-storage
我正在使用firebase存储来上传文件,但是当我上传时,我收到了这个错误
E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.android.gms.internal.zzand: Please sign in before trying to get a token.
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索但无法得到答案!我已经登录了firebase.
Sma*_*ian 16
我认为您在上传文件之前没有签名.在启动器活动的onCreate()中,尝试此代码
FirebaseAuth mAuth = FirebaseAuth.getInstance();
Run Code Online (Sandbox Code Playgroud)
然后在onStart()中,
FirebaseUser user = mAuth.getCurrentUser();
if (user != null) {
// do your stuff
} else {
signInAnonymously();
}
Run Code Online (Sandbox Code Playgroud)
signInAnonymously()
private void signInAnonymously() {
mAuth.signInAnonymously().addOnSuccessListener(this, new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
// do your stuff
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Log.e(TAG, "signInAnonymously:FAILURE", exception);
}
});
}
Run Code Online (Sandbox Code Playgroud)
这可以解决您的问题
我遇到了同样的问题,这是因为默认情况下,firebase 只允许从已通过身份验证的用户上传文件。
在 storage util 异常上方可能有类似于此的日志:
E/StorageUtil: error getting token java.util.concurrent.ExecutionException: com.google.android.gms.internal.zzajb: Please sign in before trying to get a token.
Run Code Online (Sandbox Code Playgroud)
我们有自己的身份验证过程,不使用 firebase,所以我们决定更改 firebase 控制台中的存储规则。
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:更改规则将允许任何用户将文件上传到您的 Firebase 云服务器。
| 归档时间: |
|
| 查看次数: |
14209 次 |
| 最近记录: |