【问题标题】:Flutter - how to check data perfectly uploaded/deleted or not to firebase database?Flutter - 如何检查是否完美上传/删除到firebase数据库的数据?
【发布时间】:2020-07-01 23:26:59
【问题描述】:

Flutter - 如何检查是否完美上传/删除到 Firebase 数据库的数据?

我想检查 (如 java 中的 addOnSuccessListener 或 addOnFailureListener) 数据是否完美上传/删除到 firebase 实时数据库,然后向用户显示消息,然后将转到下一页。

上传和删除到firebase的代码如下:

数据上传代码:

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



如果你知道请帮助我。

【问题讨论】:

  • 你现在有什么问题?
  • 如果一个用户没有写权限,在这种情况下这个用户卡在这里。即使我无法向该用户发送消息,会发生什么。再次,如果网络连接很差,那么用户就会卡在这里。我无法告诉用户这是连接问题或其他问题。@DougStevenson

标签: firebase flutter firebase-realtime-database dart


【解决方案1】:

您应该在返回的 Promise 上使用 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】:

    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.');
        });
      }
    
    • 这里,_userRefDatabaseReference
    • 别忘了在顶部添加import 'dart:async';

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 2019-05-10
      • 2020-10-15
      相关资源
      最近更新 更多