2016-12-20 11 views
1

Ich benutze Firebase Echtzeit-Datenbank, um Benutzer Listen von Standorten zu speichern. Im Moment wird kein Element zur Benutzerliste in Firebase hinzugefügt, sondern ersetzt. Wie komme ich dorthin, um eine angehängte Liste zu sein, die erstellt wird, während ein Benutzer Orte in die Tabellenansicht hinzufügt? Also ich würde die Struktur der Daten sein wollen:Anfügen einer Liste auf Firebase Realtime Database Schnelle

BENUTZER_ID Placename: locationA locationB locationC

Ist das möglich zu machen? hier ist mein Code so weit:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath) 
    for place in storedPlaces { 
     storedNames.append(place.name) 
    } 
    cell.textLabel?.text = storedNames[indexPath.row] 

    let Pname: String = (cell.textLabel?.text!)! 
    print(Pname) 
    let PplaceID = "Hello" 
    let post : [String: AnyObject] = ["storedName" : Pname as AnyObject, "placeID" : PplaceID as AnyObject] 

    let databaseRef = FIRDatabase.database().reference() 
    databaseRef.child("PlaceNames").child((user?.uid)!).setValue(post) 



    return cell 
+0

Sie benötigen [churchByAuthId() 'hinzufügen, um ein Element zu einer Liste hinzuzufügen] (https://firebase.google.com/docs/database/ios/lists-of-data#append_to_a_list_of_data) oder [' updateChildValues ​​() ', um selektiv Aktualisieren von untergeordneten Eigenschaften] (https://firebase.google.com/docs/database/ios/read-and-write#update_specific_fields). –

Antwort

2

denke ich, was Sie wollen Feuerbasis zu lassen ist die Lage Knotenschlüssel definieren:

let databaseRef = FIRDatabase.database().reference() 
databaseRef.child("PlaceNames").child((user?.uid)!) 
locationRef = databaseRef.childByAutoId() 
locationRef.setValue(post) 

Dies führt zu einer Firebase Struktur:

PlaceName 
    uid_0 
    -YUisisokapoksa 
     storedName: "some name" 
     placeID: "some id" 
    -YNisimaii990js 
     storedName: "some name" 
     placeID: "some id 

Es gibt einige Informationen über die Firebase Getting Started Guide über die Verwendung von ChildByAutoId - in der Aktualisierung oder Löschen von Daten Abschnitt

+0

Hey vielen Dank dafür! das war nicht ganz das, was ich wollte, aber du hast mich in die richtige Richtung gelenkt, also jetzt habe ich es ausgearbeitet ... Ich habe das childByAutoId() nach dem Kind ((user? .uid)!) alle in das selbe eingefügt line und damit habe ich die uid unter PlaceNames mit den AutoIDs darunter, gefolgt von den einzelnen Orten. (also wird für jeden Eintrag in der Tabellenansicht eine neue AutoID erstellt), die genau das war, wonach ich suchte! –

+0

Großartig! Es klingt wie die Struktur, die ich gepostet habe, entspricht deiner Beschreibung! Wenn die Antwort hilft, bitte akzeptieren Sie es, damit es auch anderen hilft. – Jay

Verwandte Themen