swift - 当我物理更新我的 Firestore 数据库字段时,我的应用程序无法访问这些新字段,并显示旧字段
问题描述
这是我的数据库 我有一个用户集合,每个用户都有文档
问题是,每当我使用实际的数据库编辑工具更改字段时,我的应用程序都无法访问数据
当我查询这些字段时,我得到了编辑之前的数据
if let document = document {
if let username = document.get("user_username") as? String,
let action = document.get("status") as? String,
let description = document.get("status_desc") as? String,
let companion = document.get("user_username") as? String {
ViewController.myName = username
self.helloLabel.text = username + " "
self.actionArray.append(action)
self.actionArray.append(description)
self.actionArray.append(companion)
} else {
print("missing fields in the status")
}
} else {
print("Document does not exist in cache")
}
}
当我现在打印状态字段时,我得到了之前的字符串,它不是“睡眠”
我也很困惑,因为当我通过应用程序本身更新字段时,数据库看起来完全一样,但应用程序能够检测到更改并显示新字段
有人可以解释为什么会发生这种情况,或者我将如何解决这个问题
解决方案
设置一个监听器来接收数据更改事件,以便使用 onSnapshot() 方法而不是 get() 来监听文档的实时更改。
每次内容更改时,侦听器都会收到数据的初始快照和另一个快照。
关联:
推荐阅读
- android - Firebase 登录错误返回 Gms:com.google.firebase.auth.api.internal.zzal@bd27b3b
- python-3.x - 不知道如何继续下一页,给定锚标记中的链接正在使用 python beautifulsoup 打开其他内容
- kotlin - 我们可以依赖 Gson 修改 val 属性的能力吗?
- laravel - Laravel 社交名流回调 - 无法访问此站点
- android - Android 应用内结算订阅购买出现错误 [DF-AA-20]
- java - 使用工厂设计模式的服务类中的@Autowired 存储库
- amazon-web-services - 通过 AWS Lambda 启动 EC2 实例
- php - 我正在尝试使用 PHP 从选择下拉列表中插入多个值,但它只采用最后一个选择的值
- python-2.7 - scapy 生成的数据包不发送
- spring-data - 创建嵌套实体时出现 IllegalStateException