使用firebase包:https://pub.dartlang.org/packages/firebase_auth https://pub.dartlang.org/packages/firebase_storage
我可以使用firebase_auth登录到firebase,在那里一切都很好,但当我使用firebase_storage包上传文件时,访问被拒绝,我必须进入firebase并将权限设置为:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;//: if request.auth != null;
}
}
}这对于使用身份验证的应用程序来说并不理想,我如何告诉firebase_storage包我是通过firebase_auth包进行身份验证的?
发布于 2018-06-23 04:40:42
你应该不会有这个问题,我分享了一个适合我的代码。
Future<Null> ensureLoggedIn() async {
FirebaseUser firebaseUser = await auth.currentUser();
assert(firebaseUser != null);
assert(!firebaseUser.isAnonymous);
}
Future<String> uploadFile(File file) async {
assert(file != null);
await ensureLoggedIn();
int random = new Random().nextInt(100000);
String _instance = '/files/image_$random.jpg';
StorageReference ref = FirebaseStorage.instance.ref().child(_instance);
StorageUploadTask uploadTask = ref.putFile(file);
final Uri downloadUrl = (await uploadTask.future).downloadUrl;
return downloadUrl.toString();
}https://stackoverflow.com/questions/50995023
复制相似问题