我有這段代碼,它將在火力庫中為emailand撰寫name。然后timers多次寫入firebase。我想這樣做,這樣它就只能寫 1 次。如何timers在data變數中附加,以便我可以一次將其寫入 firebase。
DocumentReference<Map<String, dynamic>> ref =
db.collection(Paths.usersPath).doc(uid);
var data = {
'email': email,
'name': name,
};
ref.set(data, SetOptions(merge: true));
for (int i = 1; i <= 5; i ) {
await db.collection(Paths.usersPath).doc(uid).set({
'timers': {
'timePos$i': {
'Time01': Timestamp.fromDate(DateTime.now()),
'Time02': Timestamp.fromDate(DateTime.now()),
'Time03': Timestamp.fromDate(DateTime.now()),
'Time04': Timestamp.fromDate(DateTime.now()),
'Time05': Timestamp.fromDate(DateTime.now()),
},
},
}, SetOptions(merge: true));
}
uj5u.com熱心網友回復:
也許您可以先構建資料,然后立即進行設定。
final nbTimers = 5;
final nbPositions = 5;
// Build your data
final data = {
'email': email,
'name': name,
'timers': Map.fromIterable(
List<int>.generate(nbTimers, (i) => i 1),
key: (t) => 'timePos$t',
value: (t) => Map.fromIterable(
List<int>.generate(nbPositions, (i) => i 1),
key: (p) => 'Time0$p',
value: (p) => Timestamp.fromDate(DateTime.now()),
)
)
};
// Set your data to Firebase
DocumentReference<Map<String, dynamic>> ref = db.collection(Paths.usersPath).doc(uid);
ref.set(data, SetOptions(merge: true));
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441454.html
