createPublicPlayRoom method
Future<void>
createPublicPlayRoom
()
Implementation
Future<void> createPublicPlayRoom() async {
final user = await _auth.currentUser;
final userDocRef = _store.docRef<UserEntity>(user.uid);
final room = PlayRoomEntity(
host: userDocRef.ref,
title: 'はじめての人生',
humans: [userDocRef.ref],
lifeRoad: (await _createLifeRoad()).ref,
currentTurnHumanId: user.uid,
);
final roomDocRef = _store.collectionRef<PlayRoomEntity>().docRef();
final batch = _store.firestore.batch();
await roomDocRef.set(room, batch: batch);
await userDocRef.updateData(<String, dynamic>{
UserEntityField.joinPlayRoom.name: roomDocRef.ref,
TimestampField.updatedAt: FieldValue.serverTimestamp(),
}, batch: batch);
await batch.commit(); // FIXME: エラーハンドリング. 特に既に join 済みの場合のハンドリング.
value.haveCreatedPlayRoom = Doc<PlayRoomEntity>(_store, roomDocRef.ref, room);
notifyListeners();
}