# #flutter #google-cloud-firestore #google-cloud-functions
#трепетать #google-облако-firestore #google-облачные функции
Вопрос:
вам нужно заменить значение до на значение после обновления.
однако мой сценарий таков:
следующий пользовательский интерфейс от flutter. если вы используете cloud function
для обновления данного документа. Произойдет следующий сценарий.
ниже приведены строки кода, которые я использовал для отображения значений в пользовательском интерфейсе, как на изображении выше.
_firestore .collection("users") .doc(userID) .collection("bought") .doc(_boughtId) .collection('invoice') // .where("userId", isEqualTo: userID) //? not required coz userDoc has it /* .doc(userID) .collection("note") */ // .orderBy('serverTimeStamp', descending: true) .where("buyerUserId", isEqualTo: userID) .orderBy('createdAt', descending: true) .limit(10) .snapshots(includeMetadataChanges: true)
выше приведен код флаттера, который я использовал для firestore в flutter
ниже приведена облачная функция javascript, используемая для обновления.
admin .firestore() .collection("users").doc(change.after.data().sellerUserId) .collection("sold") .doc(change.after.data().sellerUserId "-" change.after.data().buyerUserId) .update({ total: FieldValue.increment( change.after.data().total ), updatedAt: change.after.data().createdAt, })
если вы хотите воссоздать то, что я построил, вы должны использовать ListView.builder
. документ принимает 25
как total
. для воссоздания сценария не потребуется другое поле.
однако вам нужно будет запустить функцию обновления с cloudfunciton
. вы можете использовать onCreate
, если ваш документ будет обновлен, как только он будет создан. Вы увидите, как произойдет необычное поведение.
замену нужно сделать пользовательским интерфейсом без повторяющихся значений. только тогда пользователь сможет испытать нормальное поведение приложения.
Комментарии:
1. Привет, проблема решена?