Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中使用Firebase验证用户电子邮件和密码_Ios_Json_Swift_Firebase_Firebase Authentication - Fatal编程技术网

Ios 如何在Swift中使用Firebase验证用户电子邮件和密码

Ios 如何在Swift中使用Firebase验证用户电子邮件和密码,ios,json,swift,firebase,firebase-authentication,Ios,Json,Swift,Firebase,Firebase Authentication,我是新来的斯威夫特和消防基地。我正在开发一个IOS应用程序。对于此应用程序,我需要验证用户电子邮件和密码。我有一个包含用户详细信息的Json文件。请帮助我如何验证用户电子邮件和密码?我在Stackoverflow上读了好几篇文章,但我被卡住了。 以下是我的Json和swift代码 Json文件: { "ID": 123, "Membership": 1234, "title": "Mr.", "firstname": "kumar", "lastname": "sa

我是新来的斯威夫特和消防基地。我正在开发一个IOS应用程序。对于此应用程序,我需要验证用户电子邮件和密码。我有一个包含用户详细信息的Json文件。请帮助我如何验证用户电子邮件和密码?我在Stackoverflow上读了好几篇文章,但我被卡住了。 以下是我的Json和swift代码

Json文件:

{
   "ID": 123,
   "Membership": 1234,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep",
   "email": "sandeepcs2005@gmail.com",
   "membrshipstatus": "Active",
   "volunteer": "Yes",
   "creationDate": "2016-12-27 "
 },
这是我的swift代码:

import UIKit
import Firebase
import FirebaseAuth



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



    var postdata = [String]?()
    var postall = [[String:String]]()



    override func viewDidLoad() {
        super.viewDidLoad()



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

        let userRef = ref.child("Hub")
        //let queryRef = userRef.queryOrderedByChild("email").queryEqualToValue("mr.stefankirsch@gmx.com")


        // Consider adding ".indexOn": "email" at /hubeindhoven-95f09 to your security rules for better performance


       userRef.queryOrderedByChild("email").queryEqualToValue("mr.sandeep@gmail.com").observeEventType(.Value, withBlock: { snapshot in

            for child in snapshot.children {

            let snap = child as! FIRDataSnapshot

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

                let userId = userDict["ID"]
                let lastname = userDict["lastname"]
                print("\(userId!)  \(lastname!)")


            }
                    })

我认为您发布的firebase json是错误的,您是否按照标准方式添加用户(在firebase web界面中)。 每个用户没有唯一的id。例如,我添加了我的一个

{
  "users" : {
    “UOLTzymgIyeGgNBSS0UgUs95od21” : {
      "email" : "aaaaa@gmail.com",
      "firstName" : "aaaaa",
      "lastName" : “bbbb”,
      "mobileNo" : 12122121
    },
    “CveQ13sLmMO93yHZEAP24xHA3VZ1” : {
      "email" : "bbbb@gmail.com",
      "firstName" : “bbbb”,
      "lastName" : “bbbbb”,
      "mobileNo" : 11223333
    }
  }
}

我已经为signin添加了代码,这对我很有效,希望这能解决您的问题

    override func viewDidLoad() {
        super.viewDidLoad()

        FIRAuth.auth()!.addStateDidChangeListener() { auth, user in
            if user != nil {
               self.performSegueWithIdentifier("UserDetails", sender: self)
            }
        }
   }

@IBAction func LoginPage(sender: UIButton) {
        FIRAuth.auth()!.signIn(withEmail: textFieldLoginEmail.text!,
                               password: textFieldLoginPassword.text!)
}

我认为您发布的firebase json是错误的,您是否按照标准方式添加用户(在firebase web界面中)。 每个用户没有唯一的id。例如,我添加了我的一个

{
  "users" : {
    “UOLTzymgIyeGgNBSS0UgUs95od21” : {
      "email" : "aaaaa@gmail.com",
      "firstName" : "aaaaa",
      "lastName" : “bbbb”,
      "mobileNo" : 12122121
    },
    “CveQ13sLmMO93yHZEAP24xHA3VZ1” : {
      "email" : "bbbb@gmail.com",
      "firstName" : “bbbb”,
      "lastName" : “bbbbb”,
      "mobileNo" : 11223333
    }
  }
}

我已经为signin添加了代码,这对我很有效,希望这能解决您的问题

    override func viewDidLoad() {
        super.viewDidLoad()

        FIRAuth.auth()!.addStateDidChangeListener() { auth, user in
            if user != nil {
               self.performSegueWithIdentifier("UserDetails", sender: self)
            }
        }
   }

@IBAction func LoginPage(sender: UIButton) {
        FIRAuth.auth()!.signIn(withEmail: textFieldLoginEmail.text!,
                               password: textFieldLoginPassword.text!)
}

有几个问题需要解决

第一个是Firebase为您处理电子邮件/密码身份验证,一旦创建了Firebase用户,身份验证就非常简单:

FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in
  // ...
}
Firebase中不需要额外的JSON结构。但是,如果您想存储关于每个用户的附加信息,则可以使用用户id(uid)。该uid在firebase中创建用户时自动生成,然后您还可以创建一个单独的节点来包含其他用户信息

users
   uid_0
     name: "Leeeeroy"
     favorite_game: "WoW"
鉴于您已经有JSON结构的用户,我建议您制作一个快速应用程序来迭代这些用户,创建他们的Firebase帐户,并将个人数据添加到用户节点

创建用户也很简单

FIRAuth.auth()?.createUser(withEmail: email, password: password) { (user, error) in
  // ...
}

如果您确实不想创建Firebase用户,您可以推出自己的身份验证方案(但不推荐)。

有几个问题需要解决

第一个是Firebase为您处理电子邮件/密码身份验证,一旦创建了Firebase用户,身份验证就非常简单:

FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in
  // ...
}
Firebase中不需要额外的JSON结构。但是,如果您想存储关于每个用户的附加信息,则可以使用用户id(uid)。该uid在firebase中创建用户时自动生成,然后您还可以创建一个单独的节点来包含其他用户信息

users
   uid_0
     name: "Leeeeroy"
     favorite_game: "WoW"
鉴于您已经有JSON结构的用户,我建议您制作一个快速应用程序来迭代这些用户,创建他们的Firebase帐户,并将个人数据添加到用户节点

创建用户也很简单

FIRAuth.auth()?.createUser(withEmail: email, password: password) { (user, error) in
  // ...
}

如果你真的不想创建Firebase用户,你可以推出自己的身份验证方案(但不推荐)。

看这个:嗨,Rob,谢谢。但这并不能回答我的问题。我已经有JSON文件中的用户,我必须验证他们。我该怎么做?请帮忙。看这个:嗨,罗布,谢谢。但这并不能回答我的问题。我已经有JSON文件中的用户,我必须验证他们。我该怎么做?请帮忙。嗨@Jay,谢谢你的精彩回复。在我的情况下,用户已经创建,数据存储在Easy dus数据库中。因此,现在我必须以CSV格式导出用户详细信息(电子邮件、密码、姓名等),并将其转换为JSON。然后我必须导入JSON文件并对用户进行身份验证。@Jay现在我需要将JSON文件导入数据库,并验证用户登录。我怎样才能做到这一点?请帮助Hi Ratnesh,谢谢您的精彩回复。我发布的JSON结构就是一个例子,但很快我就会发布所需的JSON文件。你的JSON文件位于哪里,在数据库中还是?嗨,大家好,我已经更改了JSON文件,这正是我正在处理的结构。嗨@Jay,谢谢你的精彩回复。在我的情况下,用户已经创建,数据存储在Easy dus数据库中。因此,现在我必须以CSV格式导出用户详细信息(电子邮件、密码、姓名等),并将其转换为JSON。然后我必须导入JSON文件并对用户进行身份验证。@Jay现在我需要将JSON文件导入数据库,并验证用户登录。我怎样才能做到这一点?请帮助Hi Ratnesh,谢谢您的精彩回复。我发布的JSON结构就是一个例子,但很快我就会发布所需的JSON文件。您的JSON文件位于哪里,是在数据库中还是?您好,我已经更改了JSON文件,这正是我正在处理的结构。