2017-06-04 1 views
1

Ich baue eine Social Media App wie Instagram um.Alles löschen Daten des Benutzers

Mein Benutzer kann entscheiden, seinen Account zu löschen, und dann möchte ich automatisch alle Dinge des Benutzers löschen.

Die meisten Dinge, die ich leicht löschen kann, aber Dinge wie Beiträge ist, wo ich kämpfen, weil die UID nur ein Unterkind des Schlüssels ist, in dem der Beitrag gespeichert wird.

My Database Baum:

"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" 
} 

Meine Funktion, wo ich

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") 

     } 
    }) 
} 

Daten lösche ich durch alle Beiträge und für jeden Beitrag aussehen iterieren lieben würde, die die Benutzer-ID des aktuellen Benutzers enthält und dann lösche diese Beiträge.

Vielen Dank im Voraus :)

Antwort

2

Ich würde eine Server-Aufgabe erstellen, die diese asynchron ausgeführt werden können, die Verantwortung von dem mobilen Gerät zu entfernen. Wenn die App abstürzt oder die Verbindung getrennt wird, erhalten Sie einen stark beschädigten Datensatz. Sie müssen es in einer stabilen und nachprüfbaren Umgebung ausführen können. Dies löst inhärent auch Ihr Problem, da Sie jetzt (auf der Freizeit Ihres Servers) alle Beiträge des Benutzers durchblättern und löschen können.

Für Ihre App müssen Sie nur eine einzelne API aufrufen, nachdem Sie bestätigt haben, dass der Benutzer sein Konto löschen möchte, und voila.

+0

ich bin ein Anfänger, ich weiß nicht wirklich, wie man das macht ^^ –

+0

Es gibt viel Material da draußen, um loszulegen, aber du musst irgendwo anfangen. Informieren Sie sich über die Interaktion mit Firebase Server-Seite. – brandonscript

Verwandte Themen