질문 제목:
Firestore - 예기치 않은 읽기
질문 내용:
여러분, 여기에 흥미로운 문제가 있습니다. 여러분 중 누구라도 저를 도울 수 있다면 정말 기쁠 것입니다.내 앱 흐름:
- 이메일, 비밀번호 및 기타 세부 정보로 등록하십시오.
- 사용자를 인증하고 이메일과 비밀번호를 통해 계정을 생성하는 동시에 사용자의 사용자 지정 데이터를 데이터베이스에 작성하기 위한 사용자 firebase.
- 사용자를 로그인합니다.
그게 다야, 그게 내 모든 기본 논리이고 내가 아는 한 DB에서 어떤 읽기도 수행하지 않는다는 것을 어떻게 알 수 있습니까?이제... 문제는 내 사용자를 등록할 때 이상한 이유로 내 DB의 사용량을 보기 위해 Firebase 콘솔로 이동하고 다음과 같은 것을 볼 수 있다는 것입니다. 1개의 쓰기(예상대로 괜찮음)뿐만 아니라
13-20개의 READS FROM DB
도 있습니다.이제 이것이 내 질문입니다. 인증 및 쓰기를 수행할 때 지구상에서 내가 Firestorm 을 읽는
이유 는 무엇입니까?
지금 사용하고 있는 DB 코드입니다.
class DatabaseFirebase implements BaseDataBase {
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
final FirebaseStorage _storage = FirebaseStorage.instance;
FirebaseUser _firebaseUser;
Firestore _firestore = Firestore.instance;
@override
Future<String> login(String email, String password) async {
_firebaseUser = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
return _firebaseUser.uid;
}
@override
Future<String> register(String email, String password) async {
_firebaseUser = await _firebaseAuth.createUserWithEmailAndPassword(
email: email, password: password);
return _firebaseUser.uid;
}
@override
Future<UserData> getCurrentUser() async {
if (_firebaseUser == null)
_firebaseUser = await _firebaseAuth.currentUser();
UserData user = UserData();
user.email = _firebaseUser?.email;
user.name = _firebaseUser?.displayName;
return user;
}
@override
Future<void> logout() async {
_firebaseAuth.signOut();
}
@override
Future<void> onAuthStateChanged(void Function(FirebaseUser) callback) async {
_firebaseAuth.onAuthStateChanged.listen(callback);
}
@override
Future<void> writeUser(UserData user) async {
_firestore.collection("Users").add(user.toMap()).catchError((error) {
print(error);
});
}
}
아는 사람이 있다면 이 버그를 찾기 위해 어디에서/어떻게 검색해야 하는지 설명해 주시겠습니까? 당신이 어떻게 볼 수 있기 때문에 나는 지금까지 어떤 읽기도 사용하지 않습니다.
해결 답변:
데이터베이스에 대한 가능한 모든 액세스 경로를 이해하지 못하기 때문에 확실히 알 수는 없지만 Firebase 콘솔을 사용하면 읽기가 발생한다는 점에 유의해야 합니다. 쓰기 활동이 많은 컬렉션/문서에서 콘솔을 열어 두면 콘솔은 자동으로 콘솔 디스플레이를 업데이트하는 변경 사항을 읽습니다. 이것은 매우 자주 예기치 않은 읽기의 소스입니다.수행 중인 모든 단계의 전체 재생산 단계가 없으면 확실하게 알 수 있는 방법이 없습니다.Firebase는 현재 문서 읽기의 출처를 추적하는 도구를 제공하지 않습니다. 앱에서 특정 읽기를 측정해야 하는 경우 어떻게든 직접 추적해야 합니다.
'expert' 카테고리의 다른 글
인수 유형 'String'은 매개변수 유형 'Uri'에 할당할 수 없습니다. (0) | 2023.01.28 |
---|---|
Flutter의 화면 간 데이터 전달 (0) | 2023.01.28 |
Flutter에서 API를 사용하여 중첩된 json 데이터를 호출하는 방법은 무엇입니까? (0) | 2023.01.28 |
Dart에서 멤버 변수가 초기화되는 방식에 차이가 있습니까? (0) | 2023.01.24 |
Apple Silicon(M1)에서 CocoaPods를 실행하는 방법 (0) | 2023.01.24 |
댓글