2017-02-09 13 views
0

私はチャットアプリを開発しています。私のアプリには、User, Recent, Message, Groupという4つのノードがあります。私は、ユーザーを更新していた場合、すべてのメッセージのsenderNameは適宜更新されなければならない古いデータを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 
} 

、私のメッセージオブジェクトがどのように見えるのObjective-Cを使用しています。コードでこれを行う方法はありますか?ルールを書く必要がありますか?私は火災基地の初心者です。私にそれをする方法を提案してください。もしそれがルールでできるなら、私にこれを案内してください。

+2

手動で更新する必要があります。あなたのためにそれを行うコードはありません。 –

+0

可能なアプローチについては私の答えを見てください:http://stackoverflow.com/questions/30693785/how-to-write-denormalized-data-in-firebase/30699277#30699277答えはJavaScriptですが、そのアプローチはどのプラットフォームでも有効です。 –

答えて

2

ルールでこれを行うことはできないため、すべてのデータを手動で繰り返し、senderNameを更新する必要があります。

とにかく、代わりにリレーショナルデータベースのように、{senderID:$ someUserID}を保存する方が良いと思います。 userIDは静的なので、使用するすべてのインスタンスを更新することなくユーザーを変更できます。

関連する問題