我正在尝试在我的 flutter 应用程序中从 firebase 存储下载图像。我的代码适用于 ios 和 android 模拟器,但是当我使用真正的 Iphone 调用 firebase 存储 API 时,我得到了一个输出:
FLTFirebaseStorage:调用方法 Reference#getData 时发生未知错误 flutter: [firebase_storage/unknown] 发生未知错误,请检查服务器响应。
我不太确定在这里做什么。有人知道解决办法吗?
我的 firebase 版本是:
firebase_core: ^2.8.0
firebase_auth: ^4.3.0
firebase_storage: ^11.0.16
我的密码是:
Future<Image?> getImage() async {
final storageRef = FirebaseStorage.instance.ref();
// Create a reference with an initial file path and name
final pathReference = storageRef.child("drr.jpg");
try {
const oneMegabyte = 1024 * 1024;
final Uint8List? data = await pathReference.getData(oneMegabyte);
// Data for "images/island.jpg" is returned, use this as needed.
if (data != null) {
return Image.memory(data);
}
} on FirebaseException catch (e) {
// Handle any errors.
print(e);
}
return null;
}
看起来这是 Firebase 规则的问题
转到 Firebase Console -> Project -> Storage -> Bucket -> Rules 并粘贴以下代码或检查它是否相同。
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read: if true;
allow write: if true;
}
}
}
此外,在 Info.plist 中试试这个 支持 iOS 10
NSAllowsArbitraryLoadsInWebContent = Yes
iOS 9 支持
NSAllowsArbitraryLoads = Yes