2017-06-04 5 views
1

Instagramのようなソーシャルメディアアプリを再構築しています。ユーザーに属するすべてのデータを削除

私のユーザーは自分のアカウントを削除することができます。そして、そのユーザーに属するすべてのものを自動的に削除したいと思います。

私は簡単に削除することができますが、投稿のようなものは、私が苦労するところです。なぜなら、uidはポストが保存されているキーの子ですからです。

マイデータベースツリー:

"Feed" : { 
"es5fIbnKFpX4szcCbroUqHjJg6E3" : { 
    "-KjTBFFE5QzktG1IT5u0" : true, 
    "-KjTHFNe1RRS8Ly6bKsA" : true, 
    "-KjY30xwWA2IJBwlvyzf" : true 
} 
"myPosts" : { 
"jlkRoaucY6Q4GBkzhor5yAAl97I2" : { 
    "-KjTBFFE5QzktG1IT5u0" : true, 
    "-KjTHFNe1RRS8Ly6bKsA" : true, 
    "-KjY30xwWA2IJBwlvyzf" : true 
} 
"posts" : { 
"-KjTBFFE5QzktG1IT5u0" : { 
    "bookmarkCount" : 0, 
    "caption" : "Toll", 
    "commentCount" : 1, 
    "creationDate" : 1.494081403379004E9, 
    "hoursSinceUpload" : 0, 
    "likeCount" : 0, 
    "photoUrl" : "https://firebasestorage.googleapis.com/v0/b/funcloud-8e84e.appspot.com/o/Posts%2F76192CBE-55F0-4907-889A-849E196D5796?alt=media&token=de675609-4b73-411d-b402-f1ff3db64f79", 
    "ratio" : 1.502732240437158, 
    "score" : 16.38698994684219, 
    "uid" : "jlkRoaucY6Q4GBkzhor5yAAl97I2" 
}, 
"-KjTHFNe1RRS8Ly6bKsA" : { 
    "bookmarkCount" : 1, 
    "bookmarks" : { 
    "jlkRoaucY6Q4GBkzhor5yAAl97I2" : true 
    }, 
    "caption" : "Traumhaft", 
    "commentCount" : 0, 
    "creationDate" : 1.494082976550228E9, 
    "hoursSinceUpload" : 0, 
    "likeCount" : 2, 
    "likes" : { 
    "es5fIbnKFpX4szcCbroUqHjJg6E3" : true, 
    "jlkRoaucY6Q4GBkzhor5yAAl97I2" : true 
    }, 
    "photoUrl" : "https://firebasestorage.googleapis.com/v0/b/funcloud-8e84e.appspot.com/o/Posts%2F306BF7E1-9FEF-493A-ABF8-C0E061E8648F?alt=media&token=128bdd90-023a-49ac-8361-19c02c631183", 
    "ratio" : 1.502732240437158, 
    "score" : 166.6491847103437, 
    "uid" : "jlkRoaucY6Q4GBkzhor5yAAl97I2" 
} 
"users" : { 
"es5fIbnKFpX4szcCbroUqHjJg6E3" : { 
    "email" : "[email protected]", 
    "profilText" : "Schreib etwas über dich", 
    "profileImageUrl" : "https://firebasestorage.googleapis.com/v0/b/funcloud-8e84e.appspot.com/o/profile_image%2Fes5fIbnKFpX4szcCbroUqHjJg6E3?alt=media&token=ce8d8722-39bc-457a-8149-e51c837ef0a3", 
    "username" : "Blondine", 
    "username_lowercase" : "blondine" 
} 
私はすべての記事を反復処理し、現在のユーザーのUIDを含むすべてのポストを探すのが大好きだデータ

static func removeUserData() { 



    let user = Auth.auth().currentUser 

    let uid = API.User.CURRENT_USER?.uid 



    Database.database().reference().child("users").child(uid!).removeValue() 
    Database.database().reference().child("Feed").child(uid!).removeValue() 
    Database.database().reference().child("Favoriten").child(uid!).removeValue() 
    Database.database().reference().child("LikesFromUsers").child(uid!).removeValue() 
    Database.database().reference().child("post-comments").child(uid!).removeValue() 
    Database.database().reference().child("notification").child(uid!).removeValue() 
    Database.database().reference().child("followers").child(uid!).removeValue() 
    Database.database().reference().child("following").child(uid!).removeValue() 
Database.database().reference().child("LikesCommentsFromUsers").child(uid!).removeValue() 
Database.database().reference().child("comments").child(uid!).removeValue() 




    user?.delete(completion: { (error) in 
     if let error = error { 
      print(error.localizedDescription) 
     } else { 
      print("success") 

     } 
    }) 
} 

を削除

My機能とこれらの投稿を削除します。事前に

感謝:)

答えて

2

私は、モバイルデバイスからの責任を取り除く、非同期にこれを実行することができ、サーバーのタスクを構築します。アプリがクラッシュしたり接続が失われたりすると、重大なデータセットが破損する可能性があります。安定した検証可能な環境で実行する必要があります。これは本質的にあなたの問題をも解決します。なぜなら、(あなたのサーバーの余裕で)ユーザーが所有するすべての投稿を繰り返して削除することができるからです。

アプリに関する限り、ユーザーが自分のアカウントを削除したいことを確認した後、単一のAPIを呼び出す必要があります。

+0

私は初心者ですから、どうやってそれをするのか本当に分かりません^^ –

+0

始めるには多くの資料がありますが、どこかで始める必要があります。 Firebaseのサーバー側と対話しながら読む。 – brandonscript

関連する問題