Firebase Storage kullanılırken tanımlanmamış sınıf StorageReference
Resim yüklemeye çalışıyorum ve aynı süreç diğer uygulamam için çalışıyor, ancak burada bu hataları veriyor, yardım edebilir misiniz?
Future getImage1() async {
// ignore: deprecated_member_use
var firstImage = await ImagePicker.pickImage(
source: ImageSource.gallery, imageQuality: 65);
setState(() {
_image1 = firstImage;
});
}
Yanıtlar
Sürüm firebase_storage 5.0.1'den itibaren:
Aşağıdakileri yapmanız gerekir:
FirebaseStorage storage = FirebaseStorage.instance;
Reference ref = storage.ref().child("image1" + DateTime.now().toString());
UploadTask uploadTask = ref.putFile(_image1);
uploadTask.then((res) {
res.ref.getDownloadURL();
});
StorageReference sınıf kaldırıldı ve şimdi sınıfı kullanmanız gerekiyor https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_storage/firebase_storage/lib/src/reference.dart. https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_storage/firebase_storage/lib/src/task.dart#L96genişler Task, bu da uygular Future<TaskSnapshot>. Bu nedenle, sınıftaki tüm yöntemler sınıf Futureüzerinde kullanılabilir UploadTask.
Bu nedenle url, görüntüyü elde etmek için, then()bu gelecek tamamlandığında çağrılacak bir geri aramayı kaydeden yöntemi kullanmanız gerekir .
@PeterHadad tarafından belirtildiği gibi, firebase depolama 5.0.1'de birkaç önemli değişiklik var. Sınıflar yeniden adlandırıldı, ancak eski işlevlerinin çoğunu korudu.
İndirme URL'sini aşağıdaki gibi almak için .whenComplete () öğesini de kullanabilirsiniz.
uploadPic(File _image1) async {
FirebaseStorage storage = FirebaseStorage.instance;
String url;
Reference ref = storage.ref().child("image1" + DateTime.now().toString());
UploadTask uploadTask = ref.putFile(_image1);
uploadTask.whenComplete(() {
url = ref.getDownloadURL();
}).catchError((onError) {
print(onError);
});
return url;
}
Görünüşe göre pubspec.yaml dosyasına bağımlılık eklememişsiniz veya dart dosyanıza paketi içe aktarmamış olabilirsiniz. Bu yüzden hata alıyorsun.
Örneğin nasıl kullanılacağı konusunda paket sitesine bakın: https://pub.dev/packages/firebase_storage