在下面的图像中,我的应用程序中有消息,但是当用户说要更新其个人资料图像或名称时,下面的数据将成为过期数据。我遇到过“ Firebase Functions”,并且看到如果使用Firebase Functions,可以保持此数据同步。但是,仅了解Swift我不确定如何实现Firebase功能来保持我的消息与用户配置文件中不断变化的数据保持同步。有人可以帮助我指出如何将其实施到项目中的正确方向吗?尚未在swift或任何教程中找到任何示例代码。任何帮助将不胜感激!
答案 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发送的,可以提取其姓名,个人资料图像,年龄等。
这样,所有数据将保持同步和最新状态,并且不存在陈旧数据。
这是消息传递应用程序结构的典型实现。