2017-02-24 4 views
-1

Ich brauche deine Hilfe. Ich entwickle eine IOS App mit Firebase und Swift. Ich habe eine Liste der Benutzer in der JSON-Datei, benutzend diese JSON-Datei Ich versuche, Benutzer zu authentifizieren. Momentan kann mein Code den Wert von E-Mails abrufen. Mein Ziel ist es, die ID zu bekommen, wenn ich meine Eingabe als E-Mail gebe. Zum Beispiel: WENN ich E-Mail als [email protected] gebe, dann brauche ich es ID als 231. Dazu habe ich eine Funktion findParent() geschrieben, aber ich bekomme diesen Fehler "kann Wert des Typs 'UITextfield' nicht in das erwartete Argument konvertieren gib 'string' ein ". Bitte hilf mir. Im Folgenden sind Ergänzungen:So finden Sie den Namen eines Kindes von einem Wert

Json Datei:

[ 
{ 
    "ID": 231, 
    "iN_Hub Membership": 12345, 
    "title": "Mr.", 
    "firstname": "kumar", 
    "lastname": "sandeep", 
    "email": "[email protected]", 
}, 

Swift Code:

import UIKit 
    import Firebase 
    import FirebaseAuth 
    //import FirebaseDatabase 



    class ViewController: UIViewController { 

     @IBOutlet weak var emailofUser: UITextField! 
     @IBOutlet weak var passwordofUser: UITextField! 
     var ref:FIRDatabaseReference! //created a variable ref of type firebase database reference 
     var databaseHandle:FIRDatabaseHandle? //to handle to database listener like to stop or start it 

    override func viewDidLoad() { 
      super.viewDidLoad() 
    ref = FIRDatabase.database().reference() 


      let newRef = ref.child("4") 





      newRef.queryOrderedByKey().observeEventType(.Value, withBlock: { snapshot in 

        let userId = snapshot.value!["ID"] 

        let memberhipNum = snapshot.value!["iN_Hub Membership"] 
        let emailID = snapshot.value!["email"] 
        print(userId) 
        print(memberhipNum) 
        print(emailID) 


      }) 
      } 


     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
     } 


     @IBAction func LoginPage(sender: UIButton) { 

      func findParent(emailid: String) { 

       //set firebase reference 
       ref = FIRDatabase.database().reference() 

       ref.child(emailid).queryOrderedByKey().observeEventType(.Value, withBlock: { snapshot1 in 

        let myuserID = snapshot1.value!["ID"] 

        print(myuserID) 

       }) 
    } 

      findParent(emailofUser) 



       if let email = emailofUser.text, pass = passwordofUser.text { 




       FIRAuth.auth()?.signInWithEmail(email, password: pass, completion: { (user, error) -> Void in 



       if error == nil{ 
       print("Now its working. Well done Sandeep!!") 

       self.performSegueWithIdentifier("UserDetails", sender: self) 


       } 


       else{ 

        print("nonononono") 

        let alertController = UIAlertController(title: "oops!", message: "user name and password combination is wrong!", preferredStyle: .Alert) 

        let defaultAction = UIAlertAction(title: "Ok", style: .Cancel, handler: nil) 
        alertController.addAction(defaultAction) 

        self.presentViewController(alertController, animated: true, completion: nil) 



       } 


      }) 

      } 

    } 

    } 

Hoffnung jemand wird mir helfen. Vielen Dank im Voraus.

+0

Diese Frage wurde mit einem Codebeispiel beantwortet zuvor, die zeigt, wie per E-Mail abfragen und auch den ID-Wert abrufen . – Jay

Antwort

0

Ein Fehler, der das Problem sein könnte:

findParent(emailofUser) 

Sollte sein:

findParent(emailofUser.text) 
Verwandte Themen