Флаттер - как проверить, правильно ли загружены / удалены данные или нет базы данных firebase? - PullRequest
1 голос
/ 20 марта 2020

Флаттер - как проверить идеально загруженные / удаленные данные или нет в базу данных firebase?

Я хочу проверить (например, addOnSuccessListener или addOnFailureListener в java) данные отлично загружены / удалены или не отправлены в базу данных реального времени, затем показывают сообщение пользователю, а затем go переходят на следующую страницу.

код загрузки и удаления в базу данных ниже:

Код загрузки данных:

FirebaseDatabase.instance.reference().child('users').child(AuthUser().getUser().uid).set(user.toJson()).then((onValue){
        print('uploaded');
     });

Код удаления данных:

FirebaseDatabase.instance.reference().child('users').child(AuthUser().getUser().uid).remove().then((onValue){
        print('deleted');
     });



Если вы знаете, пожалуйста, помогите мне.

Ответы [ 2 ]

3 голосов
/ 20 марта 2020

Вы должны использовать блок catch в возвращенном обещании, чтобы проверить наличие ошибок. Так работают все фьючерсы на дротики.

const ref = FirebaseDatabase.instance.reference()
    .child('users')
    .child(AuthUser().getUser().uid)

ref.set(user.toJson())
.then(() { 
    // this is where success gets sent
})
.catchError((error) {
    // this is where permission denied errors get sent
});

См. Документацию: https://dart.dev/guides/libraries/futures-error-handling

2 голосов
/ 20 марта 2020

Гораздо более простой формат с async, await

Удалить пользователя по ID:

  void deleteUser(User user) async {
    await _userRef.child(user.id).remove().then((_) {
      print('User deleted.');
    });
  }

Обновить пользователя:

  void updateUser(User user) async {
    await _userRef.child(user.id).update({
      "name": "" + user.name,
      "age": "" + user.age,
      "email": "" + user.email,
      "mobile": "" + user.mobile,
    }).then((_) {
      print('User updated.');
    });
  }
  • Здесь _userRef - это DatabaseReference
  • Не забудьте добавить import 'dart:async'; вверху
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...