listenUserDocumentChanges method
dynamic
listenUserDocumentChanges()
Implementation
listenUserDocumentChanges() {
firebaseAuthSubscription?.cancel();
firebaseAuthSubscription =
// .distinct((p, n) => p?.user?.uid == n?.user?.uid)
fa.FirebaseAuth.instance.authStateChanges().listen((faUser) async {
/// User state changed
if (faUser == null) {
user = null;
changes.add(user);
dog('faUser is null');
} else {
dog('faUser is not null');
/// User signed in. Listen to the user's document changes.
firestoreMyDocSubscription?.cancel();
// 사용자 문서 초기화
await _initUserDocumentOnLogin(faUser.uid);
firestoreMyDocSubscription = FirebaseFirestore.instance
.collection('users')
.doc(faUser.uid)
.snapshots()
.listen((snapshot) {
// 주의: 여기서는 어떤 경우에도 사용자 문서를 업데이트해서는 안된다.
if (snapshot.exists) {
user = User.fromSnapshot(snapshot);
} else {
user = null;
}
changes.add(user);
});
}
});
}