2017-02-09 119 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},而不是像在關係數據庫中那樣。用戶標識是靜態的,因此可以更改用戶而不必更新所有使用它的實例。

相關問題