【发布时间】:2021-10-18 01:14:53
【问题描述】:
我想从画廊上传一张图片。 Android 设备运行完美但是当我点击 Ios 设备上的更改按钮时,我收到错误“引发了另一个异常:LateInitializationError: Field 'indirmeBaglantisi' has not been initialized.”
什么可能导致此错误?这是我的代码:
class _AyarlarState extends State<Ayarlar> {
final AuthService _auth = AuthService();
FirebaseAuth auth = FirebaseAuth.instance;
late String indirmeBaglantisi;
late File yuklenecekDosya;
@override
void initState(){
super.initState();
WidgetsBinding.instance!.addPostFrameCallback((_) => baglantiAl());
}
baglantiAl() async {
String baglanti = await FirebaseStorage.instance
.ref()
.child("profilresimleri")
.child(auth.currentUser!.uid)
.child("profilResmi.png").getDownloadURL();
setState(() {
indirmeBaglantisi = baglanti;
});
}
kameradanYukle() async {
// ignore: deprecated_member_use
var alinanDosya = await ImagePicker().getImage(source: ImageSource.gallery);
setState(() {
yuklenecekDosya = File(alinanDosya!.path);
});
Reference referansYol = FirebaseStorage.instance
.ref()
.child("profilresimleri")
.child(auth.currentUser!.uid)
.child("profilResmi.png");
UploadTask yuklemeGorevi = referansYol.putFile(yuklenecekDosya);
String url = await (await yuklemeGorevi).ref.getDownloadURL();
setState(() {
indirmeBaglantisi = url;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
color: Colors.black,
child: Stack(
children: <Widget>[
Container(
decoration: BoxDecoration(
color: Color(0XFF1E1E37),
),
),
Padding(
padding: EdgeInsets.only(top:130),
child: Column(
children: <Widget> [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget> [
Container(
child: Row(
children: [
ClipOval(
child: indirmeBaglantisi == null ? Image.asset("assets/images/Oval2.png") : Image.network(indirmeBaglantisi,height: 100,width:100 ,fit:BoxFit.fitWidth),
)
],
),
),
],
),
SizedBox(height: 20),
// ignore: deprecated_member_use
RaisedButton.icon(
padding: EdgeInsets.symmetric(vertical: 8.0,horizontal: 10.0),
onPressed: () {
kameradanYukle();
},
shape:RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(30)),
) ,
icon: Icon(Icons.insert_photo_outlined, color: Colors.blue,), label: Text('Profil Fotoğrafını Değiştir'),
color: Colors.white,
),
【问题讨论】:
标签: ios firebase flutter file-upload firebase-storage