Swift Firebase更新旧数据-实时数据库触发器

时间:2019-01-08 04:11:09

标签: ios swift firebase firebase-realtime-database

在下面的图像中,我的应用程序中有消息,但是当用户说要更新其个人资料图像或名称时,下面的数据将成为过期数据。我遇到过“ Firebase Functions”,并且看到如果使用Firebase Functions,可以保持此数据同步。但是,仅了解Swift我不确定如何实现Firebase功能来保持我的消息与用户配置文件中不断变化的数据保持同步。有人可以帮助我指出如何将其实施到项目中的正确方向吗?尚未在swift或任何教程中找到任何示例代码。任何帮助将不胜感激!

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

根据问题的注释和结构,数据变得陈旧的原因是由于数据如何存储在Firebase中。

一种选择是,当发送一条消息时,先将消息写入节点,然后再对发件人信息进行引用。这样可以使所有内容始终保持最新状态

所以说我们有一个用户节点,其中的用户存储有用户UID作为每个节点的密钥

users
   uid_0
     user_name: "Peter"
     user_age:  "32"
     gender:    "Male"
     business_name: "Peter's Plumbing Place"
     url: "http:...."
     type: "Customer"
   uid_1
     user_name: "Ralph"
     user_age:  "47"
     gener:     "Male"
     business_name: "Ralph's Repair Room"
     url: "http:...."
     type: "Employee"

然后我们有消息

messages
   msg_0
     msg_text: "Here's a message!"
     from_uid: "uid_0"
     to_uid:   "uid_1"
     timestamp: "20180110"

然后,用户uid_1将查询观察者添加到message节点,以查找to_uid为uid_1的任何消息,以便将传入消息通知给它们。当他们收到它时,他们还将知道它是由uid_0发送的,可以提取其姓名,个人资料图像,年龄等。

这样,所有数据将保持同步和最新状态,并且不存在陈旧数据。

这是消息传递应用程序结构的典型实现。