Firestore - неожиданные чтения - PullRequest
0 голосов
/ 03 июня 2019

там, ребята, у меня есть интересная проблема, и я был бы очень рад, если кто-нибудь из вас сможет помочь мне с этим.

Каков поток моего приложения:

  1. Зарегистрируйтесь по электронной почте, паролю и другим деталям:
  2. Пользователь Firebase для авторизации пользователя и создания учетной записи по электронной почте и паролю, в то же время я записываю пользовательские данные пользователя в базу данных.
  3. Войти в систему пользователя.

Вот и все, это вся моя основная логика, и как вы можете видеть, насколько я знаю, я не делаю чтения из БД.

Теперь ... проблема в том, что по какой-то странной причине, когда я регистрирую своего пользователя, я иду на консоль firebase, чтобы увидеть использование моей БД, и я увижу что-то вроде ... для одного пользователя, который был создан, у меня будет 1 запись (что хорошо, как я ожидал), но также 13-20 ЧТЕНИЯ С БД .

Теперь это мой вопрос, ПОЧЕМУ на земле у меня читает на огненном шторме, когда я делаю только авторизацию и пишет?

Вот мой код БД, который я сейчас использую.

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);
    });
  }
}

Если кто-нибудь из вас знает, можете ли вы объяснить мне, где / как мне нужно искать, чтобы найти эту ошибку? Потому что, как вы можете видеть, я не использую какие-либо тексты для чтения.

1 Ответ

2 голосов
/ 04 июня 2019

Невозможно знать наверняка, учитывая, что мы не понимаем все возможные маршруты доступа к вашей базе данных, но вы должны знать, что использование консоли Firebase повлечет за собой чтение, и если вы оставите консоль открытой на занятойколлекция / документ, вы будете автоматически читать изменения, которые обновляют отображение консоли.Это очень часто источник неожиданных прочтений.

Без полного воспроизведения точно всех шагов, которые вы делаете, невозможно точно знать.

...