webentwicklung-frage-antwort-db.com.de

Swift Holen Sie sich bestimmte Werte aus der Firebase-Datenbank

Ich versuche, einen bestimmten Wert von der Firebase-Datenbank zu erhalten. Ich habe mir einige Dokumente wie Google angesehen, konnte es aber nicht. Hier ist die JSON-Datei der Datenbank:

{
    "Kullanıcı" : {
        "ahmetozrahat25" : {
            "E-Mail" : "[email protected]",
            "Yetki" : "user"
        },
        "banuozrht" : {
            "E-Mail" : "[email protected]",
            "Yetki" : "user"
        }
    }
}

SWIFT-Code:

ref?.child("Kullanıcı").child(userName.text!).observeSingleEvent(of: .value, with: { (snapshot) in

    if let item = snapshot.value as? String{
        self.changedName = item
    }
})

Ich möchte E-Mail Wert eines Benutzers erhalten, nicht jedermanns. Wie kann ich das machen?

8
Ahmet Özrahat

Endlich habe ich eine Lösung gefunden. Wenn ich eine var deklariere und versuche später zu verwenden, wird nil zurückgegeben, aber wenn ich snapshot.value as? String verwende, ist das in Ordnung. Hier ist ein Beispiel, das ich gemacht habe.

    ref: FIRDatabaseReference?
    handle: FIRDatabaseHandle?

    let user = FIRAuth.auth()?.currentUser

    ref = FIRDatabase.database().reference()

    handle = ref?.child("Kullanıcı").child((user?.uid)!).child("Yetki").observe(.value, with: { (snapshot) in

        if let value = snapshot.value as? String{

            if snapshot.value as? String == "admin"{
                self.items.append("Soru Gönder")
                self.self.tblView.reloadData()
            }
        }
    })
6
Ahmet Özrahat

In Ihrem Code enthält der Schnappschuss ein Wörterbuch mit untergeordneten Werten. Um auf sie zuzugreifen, verwandeln Sie den Schnappschuss.Wert als Wörterbuch, und dann ist der Zugriff auf die einzelnen Kinder ein Kinderspiel (Schuss, Lol)

ref?.child("Kullanıcı").child(userName.text!)
                       .observeSingleEvent(of: .value, with: { (snapshot) in

    let userDict = snapshot.value as! [String: Any]

    let email = userDict["E-Mail"] as! String
    let yetki = userDict["Yetki"] as! String
    print("email: \(email)  yetki: \(yetki)")
})
4
Jay

Fügen Sie der Abfrage das untergeordnete Element "E-Mail" hinzu.

ref?.child("Kullanıcı").child(userName.text!).child("E-Mail").observeSingleEvent(of: .value, with: { (snapshot) in

    if let item = snapshot.value as? String{
        self.changedName = item
    }
})
2
Rajesh73