【问题标题】:Querying firebase real time database using firebase package unknown input parameter Flutter使用firebase包未知输入参数Flutter查询firebase实时数据库
【发布时间】:2020-05-26 11:26:38
【问题描述】:

我将firebase 包用于我的应用程序的网络版本,将firebase_database 用于设备版本。 当使用 firebase_database 查询特定节点时,.once() 方法不要求任何输入参数,但 firebase 对应方需要 String eventType 输入。我查看了 API 文档,但找不到应该传入的内容。 应该传入什么字符串? 一如既往,非常感谢您的帮助。

firebase_database 方法:

Future<DateTime> getFirebaseSyncDate(
      String cityDb, String regionDb, String countryDb) {
    // TODO: implement getFirebaseSyncDate
    return ref
        .child('Firebase Sync Date')
        .orderByChild('Sync Date')
        .limitToFirst(1)
        .once()
        .then((DataSnapshot snap) {
      DateTime syncDate = snap.value['Sync Date'];
      return syncDate;
    });
  }

firebase 版本:

Future<DateTime> getFirebaseSyncDate(
      String cityDb, String regionDb, String countryDb) {
    var ref = firebase.database().ref();
    return ref
        .child('Firebase Sync Date')
        .orderByChild('Sync Date')
        .limitToFirst(1)
        .once('') //            <===   String eventType ??
        .then((snap) {
      DateTime syncDate = snap.snapshot.val()['Sync Date'];
      return syncDate;
    });
  }

【问题讨论】:

    标签: firebase flutter firebase-realtime-database


    【解决方案1】:

    once 接收 eventType,以下字符串之一:valuechild_addedchild_changedchild_removedchild_moved

    你的情况,我想一定是value

    查看link了解更多详情

    【讨论】:

    • 哦,当然。我懂了。我并没有真正将这个包视为 javascript SDK 的包装器,所以我从未检查过相关的 firebase 文档。非常感谢您让我意识到这一点,并提供答案。我对 javascript 一无所知,也从未阅读过 Firebase javascript 文档,firebase 包方法对我来说并不熟悉。再次感谢。干杯
    • 我看到的可能我也错误地读取了我想要的值。而不是DateTime syncDate = snap.snapshot.val()['Sync Date'];,它应该是DateTime syncDate = snap.snapshot.child('Sync Date').val();。对吗?
    • 获取数据应该是snap.val()snap.snapshot 将在此处未定义
    • 使用child,应该是snap.child('Sync Date').val()
    • snap.child('Sync Date').val() 抛出错误:The method 'child' isn't defined for the class 'QueryEvent。但是snap.snapshot.child('Sync Date').val(); 修复了它。我猜firebase 包和 javascript SDK 之间有一些小的区别。
    猜你喜欢
    • 2021-07-03
    • 2020-09-13
    • 1970-01-01
    • 2019-09-29
    • 2019-07-31
    • 1970-01-01
    • 2022-08-05
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多