如何将从Firebase检索到的值存储到变量Flutter中



我试图从firebase检索数据(客户名称,客户ID)并将其存储到变量中。之后,我想将变量数据存储到另一个firebase路径位置。

我可以调用快照并打印它,但是我不能将数据从firebase保存到变量中。

CollectionReference orderInfo =
FirebaseFirestore.instance.collection('orderInfo');
final user = FirebaseAuth.instance.currentUser;
String cusName;
String add;
void getNameAddress() async {
final doc = await FirebaseFirestore.instance
.collection('users')
.doc(user.uid)
.get();
cusName = doc['name'];
add = doc['address1'] + '' + doc['address2'] + '' + doc['address3'];
}
Future initializeOrder(BuildContext ctx) {
getNameAddress();
return orderInfo.doc(user.uid + 'order').set({
'orderID': '',
'cusID': user.uid,
'cusName': cusName,
'cusAdd': add,
'clID': '',
'clName': null,
'price': null,
'selectedDate': null,
'serviceSelected': null,
'typeOfService': 'Not selected yet',
});
}

initializeorder()是我用来在另一个路径中存储数据的函数。

我该如何解决这个问题?

由于getNameAddress()函数是async,而Firestore的set()方法是异步的,因此您需要将initializeOrder()函数设置为async,并在调用getNameAddress()时使用await,如下所示:

Future<void> initializeOrder(BuildContext ctx) async {
await getNameAddress();
return orderInfo.doc(user.uid + 'order').set({
'orderID': '',
'cusID': user.uid,
'cusName': cusName,
'cusAdd': add,
'clID': '',
'clName': null,
'price': null,
'selectedDate': null,
'serviceSelected': null,
'typeOfService': 'Not selected yet',
});
}

相关内容

  • 没有找到相关文章

最新更新