当我更改字符串URL字段时,我无法更新文档,98%的时间我都会遇到此错误。
这里是我的提升按钮代码:
ElevatedButton(
onPressed: isProcessing
? null
: () async {
final action = await AlertDialogs.yesCancelDialog(
context,
' بيانات الطفل ',
'هل أنت متأكد من تعديل بيانات الطفل؟');
if (!mounted) return;
if (action == DialogsAction.yes) {
setState(() => tappedYes = true);
if (!mounted) return;
//if yes
if (_formKey.currentState!.validate()) {
setState(() {
isLoading = true;
isProcessing = true;
});
Future.delayed(Duration(seconds: 12), () {
try {
final docChild = FirebaseFirestore.instance
.collection('users')
.doc(uid)
.collection('children')
.doc(widget.childID);
//update child info
docChild.update({
'image':
imgURL.isEmpty ? childImage : imgURL,
'name': childName.text,
'gender': selectedGender,
'height': int.parse(childHeight.text),
'birthday': DateTime.parse(birthday.text)
});
} on FirebaseException catch (e) {
// Caught an exception from Firebase.
print(
"Failed with error '${e.code}': ${e.message}");
}
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => NavPage()),
);
setState(() {
isLoading = false;
isProcessing = false;
});
});
}
} else {
setState(() => tappedYes = false);
if (!mounted) return;
}
},
style: ButtonStyle(
backgroundColor:
MaterialStateProperty.all(const Color(0xFF429EB2)),
),
child: isLoading
? CircularProgressIndicator(
color: Colors.white,
)
: const Text('حفظ التعديلات'))
然后它就像这样粘在负载上了
我尝试打印imgURL和childImg的内容,但两者都具有有效的字符串URL。
1条答案
按热度按时间pxy2qtax1#
isLoading = false
&isProcessing = false
应该在更新方法之后。并且您应该在继续之前await
更新。