我正在尝试将 Firebase Storage 连接到我的 flutter 项目。但我遇到了一个错误
[错误:flutter/runtime/dart_vm_initializer.cc(41)] 未处理 异常:[firebase_storage/channel-error] 无法建立 通道上的连接。
我发现这可能是规则问题,因为我使用了 firebase auth。但我的存储规则如下:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write : if request.auth !=null;
}
}
}
我也尝试过:
allow read, write : if true
但是有同样的问题
我通过添加依赖项更改了我的 build.gradle
implementation("com.google.firebase:firebase-storage:21.0.0")
我的代码:
Reference get firebaseStorage => FirebaseStorage.instance.ref();
class FirebaseStorageService extends GetxService{
static Future<String?> getImage(String? imgName) async{
if(imgName == null){
return null;
}
try{
var urlRef = firebaseStorage
.child("images")
.child('$imgName.png');
var imgUrl = await urlRef.getDownloadURL(); //here is a problem
return imgUrl;
}catch (e){
throw e;
return null;
}
}
}
一般小艾都会给我们这样的答案
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
但是我必须提供更多连接信息,这是我的代码
void main() async {
WidgetsFlutterBinding.ensureInitialized();
if(Platform.isAndroid) {
await Firebase.initializeApp(
options: FirebaseOptions(
apiKey: 'AIzaSyB9m84p8Y_SY6isFvMaOFWOA2g4xKrb6Nc',
appId: '1:773723122783:android:b26d30ed175962b3413fea',
messagingSenderId: '773723122783',
projectId: 'untitled-38d04')
);
}
Get.put(auth());
runApp(const MyApp());
}
检查它们并将其放入主屏幕希望它会有所帮助