FireStore удаляет данные, если новое действие - PullRequest
0 голосов
/ 02 ноября 2018

У меня определенная проблема с пожарным депо и трепетом. До сих пор он прекрасно работает с потоками и обновлением данных. Контекст: Я создаю приложение, в котором пользователи должны иметь возможность сохранять имя, электронную почту и аватар. Мой код для сохранения это выглядит так

onSave(BuildContext context) async {
  if (formKey.currentState.validate()) {
    formKey.currentState.save();
    showLoading(context);
    FirebaseStorage storage = FirebaseStorage.instance;
    StorageUploadTask uploadTask =
        storage.ref().child('$udid/avatar').putFile(avatar);
    String downloadUri = await (await 
uploadTask.onComplete).ref.getDownloadURL();
    contact['avatarUrl'] = downloadUri.toString();

    await Firestore.instance
      .document('users/$udid')
      .updateData({'profile': contact});
    Navigator.pop(context);
  }
}

Работает отлично, но затем я открываю другой виджет (код ниже), и запись в базе данных удаляется.

  @override
 Widget build(BuildContext context) {
 return StreamBuilder(
  stream: Firestore.instance
      .collection("jobs")
      .orderBy('created', descending: true)
      .snapshots(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return Container();
    List<DocumentSnapshot> docs = snapshot.data.documents;
    return Container(
        child: ListView.builder(
      itemBuilder: (context, index) {
        return ListTile(title: Job.fromSnapshot(docs[index]));
      },
      itemCount: docs.length,
    ));
    },
  );
  }

Я действительно понятия не имею, почему это происходит. Запись в базе данных остается до тех пор, пока я не открою другой экран. Пользователь также не может переключать экран во время работы onSave. Я уже пытался с транзакцией, но там у меня все та же проблема. Нигде во всем моем коде я не вызываю функцию удаления.

Кто-нибудь знает, как это исправить? Или я должен открыть новый отчет об ошибке на GitHub для flutter / firestore?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...