Flutter Firebase 存储:请求没有身份验证令牌
Posted
技术标签:
【中文标题】Flutter Firebase 存储:请求没有身份验证令牌【英文标题】:Flutter Firebase Storage : no auth token for request 【发布时间】:2020-06-26 23:54:10 【问题描述】:我在使用 Image_Picker 时尝试将图像上传到 Firebase 存储。
当我想将图片(imageFile)上传到 Firebase 存储时
Future uploadFile() async
StorageReference storageReference =
storage.ref().child('profile/$Path.basename(imageFile.path)');
print('uploading..');
StorageUploadTask uploadTask = storageReference.putFile(imageFile);
//waiting for the image to upload
await uploadTask.onComplete;
print('File Uploaded');
storageReference.getDownloadURL().then((fileURL)
setState(()
imageURL = fileURL;
);
print(imageURL);
);
但是,在上传过程中,出现错误提示我没有身份验证令牌请求。 我之前使用 Firebase Auth 将数据存储到数据库中,并且所有内容都已正确配置(我假设是因为 Firebase 给了我一个 google.json 文件)。
W/NetworkRequest( 5796): no auth token for request
E/StorageUtil( 5796): error getting token java.util.concurrent.TimeoutException: Timed out waiting for Task
我还尝试将存储规则从 read, write if auth != null 更改为 read, write。
【问题讨论】:
【参考方案1】:检查您的 Firebase 存储规则。我认为默认选项是只允许经过身份验证的用户。如果这是问题所在,只需将它们更改为最适合您需求的即可。
【讨论】:
这实际上是我的问题,感谢您的回答 @AhmedKhattab 你设置了什么?可以分享一下规则吗?请问我有同样的问题!【参考方案2】:您是否使用 GoogleSignIn 进行身份验证,您能否为 firebase 提供您的用户身份验证代码?对于我使用以下代码解决的 googlesignin 方法,我遇到了相同的问题“无身份验证令牌请求”。
final GoogleSignIn googleSignIn = GoogleSignIn();
FirebaseUser firebaseUser;
GoogleSignInAccount account = await googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth = await account.authentication;
final AuthCredential _cred = GoogleAuthProvider.getCredential(idToken: googleAuth.idToken, accessToken: googleAuth.accessToken);
final AuthResult _res = await FirebaseAuth.instance.signInWithCredential(_cred);
firebaseUser = _res.user;
【讨论】:
我认为它不仅适用于谷歌登录......而且适用于所有登录选项!!!以上是关于Flutter Firebase 存储:请求没有身份验证令牌的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将flutter_tts文件保存到firebase存储?
如何在 Flutter 中从 firebase 存储读取和写入文本文件?
如何在 Flutter 应用程序中更新 Firebase 令牌并存储它?
带有 Firebase 托管的 Flutter web 无法从存储中加载图片