2017-02-09 113 views
0

我正在开发一个聊天应用程序。在我的应用程序中有4个节点,称为User, Recent, Message, Group。我使用的Objective-C我的消息对象的模样,如何使用Firebase中的新数据更新旧数据?

{ 
    "createdAt" : 1.486618017521277E9, 
    "groupId" : "-KcWKeXXQ9tjYsYfCknx", 
    "objectId" : "-KcWKftK8GiMxxAnarL5", 
    "senderId" : "828949592937598976", 
    "senderImage" : "http://hairstyleonpoint.com/wp-content/uploads/2014/10/marcello-alvarez.png", 
    "senderName" : "John Doee", 
    "status" : "Seen", 
    "text" : "Hi all", 
    "type" : "text", 
    "updatedAt" : 1.486622011467733E9 
} 

当我更新的用户,所有邮件的senderName应随之更新。有没有办法通过代码来做到这一点,或者我是否需要编写规则。我是firebase的新手。请给我一个方法来做到这一点。如果可以遵守规则,请在此指导我。

+2

您必须手动更新。没有代码可以为你做。 –

+0

在这里看到我的答案可能的方法:http://stackoverflow.com/questions/30693785/how-to-write-denormalized-data-in-firebase/30699277#30699277。答案是JavaScript,但这些方法在任何平台上均有效。 –

回答

2

通过规则无法做到这一点,所以您必须手动迭代所有数据并更新senderName。无论如何,我想你应该更好地保存{senderID:$ someUserID},而不是像在关系数据库中那样。用户标识是静态的,因此可以更改用户而不必更新所有使用它的实例。

相关问题