【问题标题】:Firebase realtime database saving data but not displaying it on console in flutterFirebase实时数据库保存数据但未在控制台上显示
【发布时间】:2021-08-29 16:12:54
【问题描述】:

我正在开发一个需要实时数据库的应用程序。 Firebase 在该应用程序上运行良好。实时数据库可通过 http post 和 get 访问,并导致 firebase 数据库在控制台上更新其数据。

问题是当我尝试使用库提供的颤振函数更改数据时。

    final firebaseRef = FirebaseDatabase.instance.reference().child("Items");

    firebaseRef.set("hi");
    firebaseRef.once().then((DataSnapshot snapshot) {
      print('Data : ${snapshot.value}');
    });

当我尝试使用上面的功能时,数据似乎可用并且控制台打印 Data: hi,但是当我在线检查时它们没有出现在 firebase 控制台上。

感谢任何帮助,我找不到任何可以提供帮助的信息。我检查了我的设置 20 次,它是正确的,欢迎提出任何建议。

【问题讨论】:

  • 听起来您的应用程序无法连接到 Firebase 服务器。在这种情况下,Firebase 客户端会缓存任何本地机会,并通常为它们触发事件,但只有在再次建立连接后才能将这些更改同步到服务器。如果您无法确定客户端是否正在连接,请查看firebase.google.com/docs/database/android/…
  • @FrankvanPuffelen 你假设它没有连接实际上是正确的。我检查了您发送的文档,它显示我没有连接。如果您可以向我介绍如何解决问题,我将不胜感激。 Firestore 数据库工作正常,只是实时数据库不工作。

标签: firebase flutter firebase-realtime-database


【解决方案1】:

在 Frank van Puffelen 的帮助下,我找到了问题所在,谢谢。 问题是 Firebase 实时数据库没有连接到应用程序,我得到的所有结果都被缓存在设备上。

如果您遇到类似问题,请使用这部分文档的帮助检查数据库是否已连接。 https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state

在我的情况下,它未连接的原因是因为在中美洲以外的颤振上引用任何实时数据库时,您需要将在 firebase 控制台中找到的数据库的 url 放在代码中。因此:

final firebaseRef = FirebaseDatabase(
        databaseURL:
            "https://yourfirebaseproject.europe-west1.firebasedatabase.app/")
    .reference()
    .child("Items");

我希望这足以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 2021-09-02
    • 2022-12-04
    相关资源
    最近更新 更多