Firebase返回部分快照而不是完整对象快照

时间:2019-06-11 11:08:16

标签: ios swift firebase firebase-realtime-database

我正在iOS项目上使用Firebase实时数据库。我无法解释的事情正在发生。我有一个带有用户的表用户,每个用户都有许多不同的字段,看起来像这样:

{
 "first_name": "User First Name",
 "last_name": "User Last Name",
 "age": 10 
}

但是我看到了一个我无法解释的怪异行为。当我使用.value事件类型订阅观察对象或observeSingleEvent时,我只会返回first_name而不是完整的对象。如果我转到firebase控制台并手动修改last_name,则会得到first_namelast_name,但同样,我没有收到完整的对象。

我不知道还能尝试什么...我开始认为这是Firebase iOS上的缓存错误。

我的配置如下:

let database = Database.database()
database.isPersistenceEnabled = true

let path = "/users/uuid"
let reference = Database.database().reference().child(path)
reference.keepSynced(true)

refHandle = reference.observe(.value, with: { (snapshot) in
  let postDict = snapshot.value
})

有任何线索吗?!

更新: 我创建了一个不同的应用程序,该应用程序连接到相同的数据库,并在初始应用程序失败时检索对象,并且我正确接收了该对象。

回答杰伊的评论:

  • 即使我可以在Web控制台中看到完整的对象,我也没有收到完整的对象。
  • 我当然在做let postDict = snapshot.value as? [String: Any] ?? []
  • 我还添加了调试snapshot.childrenCount的功能,它没有返回对象的所有键。我只得到1个first_name
  • 在路线/users/uuid/age上添加了一个观察值,该值为空。 .exists()返回false
  • 当我弹出进行观察并被正确删除的视图控制器时,还检查我是否正确removeObserver

0 个答案:

没有答案
相关问题