Flutter: вставка нескольких данных в базу данных Firebase в реальном времени, но приложение зависаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Flutter: вставка нескольких данных в базу данных Firebase в реальном времени, но приложение зависает

Сообщение Anonymous »

Код: Выделить всё

Future addExpenseInDatabase(BuildContext context) async {
Map splitByMap = {};
Map paidByMap = {};
for (var element in splitByList) {
String dateTime = DateTime.now().microsecondsSinceEpoch.toString();
splitByMap[dateTime] = element.toJson();
}
for (var element in paidByList) {
String dateTime = DateTime.now().microsecondsSinceEpoch.toString();
paidByMap[dateTime] = element.toJson();
}
getIt().showCircularDialog(context);
Future.delayed(Duration(seconds: 5)).then((value) async {
DateFormat formatter = DateFormat('yyyy-MM-dd');
formattedDate.value = formatter.format(selectedDate.value);
if (!isNullEmptyOrFalse(amountController.value.text)) {
if (paidByList.isNotEmpty && splitByList.isNotEmpty) {
await FirebaseHelper.addAndEditExpense(
isEdit: isFromExpenseEdit.isTrue,
groupID: groupModel.value.groupID.toString(),
expenseId: expenseList.value.expenseID.toString(),
description: descriptionController.value.text,
iconPath: selectedCategory.value.icon.toString(),
currency: selectedCurrency.value,
amount: amountController.value.text,
expenseDate: formattedDate.value,
notes: noteController.value.text,
paidByList: paidByMap,
splitByList: splitByMap,
).then((value) {
activityList.add(ActivityModel(
image: groupModel.value.groupImage.toString(),
groupType: groupModel.value.groupType.toString(),
title: isFromExpenseEdit.isTrue == true
? "You updated '${descriptionController.value.text}' in '${groupModel.value.groupName}'"
: "You added '${descriptionController.value.text}' in '${groupModel.value.groupName}'",
date: DateTime.now().toString(),
));
List activityListJson = activityList.map((friend) => friend.toJson()).toList();
box.write(ArgumentConstant.activityList, activityListJson);
List splitByListJson = [];
box.write(ArgumentConstant.passSplitByList, splitByListJson);
List paidByListJson = [];
box.write(ArgumentConstant.passPaidByList, paidByListJson);
getIt().hideCircularDialog(context);
Get.back();
},);
} else {
getIt().hideCircularDialog(context);
Fluttertoast.showToast(msg: "Enter paid by and split by");
}
} else {
getIt().hideCircularDialog(context);
Fluttertoast.showToast(msg: "Enter description and amount");
FocusScope.of(context).requestFocus(focusNode);
}
});
}
Мне нужно вставить несколько данных одновременно в базу данных Firebase реального времени. Эта функция отвечает за добавление записи о расходах в базу данных и обновление локальных компонентов пользовательского интерфейса в зависимости от того, была ли операция успешной или нет. Он включает проверку данных, асинхронные операции с базой данных и обратную связь от пользовательского интерфейса.

Подробнее здесь: https://stackoverflow.com/questions/790 ... p-is-stuck
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»