【问题标题】:Firebase setValue() method is not triggered sometimes while using diskpersistence使用磁盘持久性时有时不会触发 Firebase setValue() 方法
【发布时间】:2016-02-17 12:43:17
【问题描述】:

在android中使用启用磁盘持久性的firebase时,我观察到有时使用setValue()方法添加的数据不会反映在数据库中。代码只是简单的firebaseRef.child("xyz").setValue(userObj)。有什么想法吗?

【问题讨论】:

  • 不。你有我可以用来重现行为的步骤吗?
  • 步骤是:1)在应用程序java文件中设置磁盘持久性,2)通过editTextView从用户那里获取信息,然后在firebase url上调用setValue。虽然出现问题的频率少了,但即便如此,我至少想向用户显示一条错误消息。那么,如何确定该值是否已写入数据库?

标签: android firebase firebase-realtime-database


【解决方案1】:

cmets 更新后的问题是:

我怎样才能知道该值是否已确定写入数据库?

为此,您向setValue() 调用添加了一个完成侦听器。来自documentation on completion listeners

ref.setValue("I'm writing data", new Firebase.CompletionListener() {
  @Override
  public void onComplete(FirebaseError firebaseError, Firebase firebase) {
    if (firebaseError != null) {
      System.out.println("Data could not be saved. " + firebaseError.getMessage());
    } else {
      System.out.println("Data saved successfully.");
    }
  }
});

【讨论】:

  • 谢谢弗兰克,我不知道那个听众。你能告诉我在哪种情况下我可能会遇到数据未保存的问题。
  • @Frank 我的类似代码在应用离线时不起作用。任何线索为什么会发生这种情况?
猜你喜欢
  • 2017-05-18
  • 2018-11-10
  • 2016-12-03
  • 2016-09-02
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
相关资源
最近更新 更多