如何使用swift从firebase中的JSON文件中获取电子邮件ID [英] How to fetch email id from JSON file in firebase using swift

查看:84
本文介绍了如何使用swift从firebase中的JSON文件中获取电子邮件ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

JSON图片我想查询如:如果我给电子邮件,然后我必须得到身份证件。目前我可以取电子邮件或身份证,但我需要下面的例子的解决方案。



例如
1)如果我给 sandeep @ gmail.com 然后我需要它的ID为 123



我怎样才能这是我的 JSON 文件:

  {
ID:123,
Membership:1234,
title:Mr.,
firstname:kumar,
lastname:sandeep,
email:sandeep@gmail.com,
membrshipstatus:Active,
志愿者:是,
creationDate:2016-12-27
},

{
ID:452 ,
Membership:4531,
title:Mr.,
firstname:kumar,
lastname:sandeep,
email:harry@gmail.com,
membrshipstatus:活跃,
志愿者:是,
creationDate:2016-11-11 -17

这是我的 Swift code:

 导入UIKit 
导入Firebase
导入FirebaseAuth
$ b $ class ViewController:UIViewController {

@IBOutlet weak var emailofUser:UITextField!
@IBOutlet弱var passwordofUser:UITextField!
var ref:FIRDatabaseReference! //创建一个firebase数据库引用类型的变量ref
var databaseHandle:FIRDatabaseHandle? //处理数据库监听器来停止或启动

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

$ b重写func viewDidLoad(){
super.viewDidLoad()

//设置firebase引用
ref = FIRDatabase.database( ).reference()

ref.child(1)。child(email)。observeEventType(.Value,withBlock:{snapshot in

let emailid = snapshot.value as?String

print(emailid)
})

ref.child(1)。child(ID)。observeEventType .Value,withBlock:{snapshot1 in

let userID = snapshot1.value as?Int

print(userID)
})

。ref.queryOrderedByValue()。observeEventType(.ChildAdded,withBlock:{snapshot2 in
if let parentname = snapshot2.value as?Int {
print(The \(snapshot2.key)dinos aur的分数是\(父母名称))
}
})
}
}

与此JSON图像相关的Swift代码:

  override func viewDidLoad(){
super.viewDidLoad()



//设置firebase引用
ref = FIRDatabase.database()。reference()

let userRef = ref.child(1)

// let queryRef = userRef.queryOrderedByChild(email)。queryEqualToValue(mr.stefankirsch@gmx.com)


userRef.queryOrderedByChild(email)。queryEqualToValue(mr.stefankirsch@gmx.com)。observeEventType(.Value,withBlock:{snapshot in

for child在snapshot.children {

让snap = child as! FIRDataSnapshot

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

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


}
})


  users 
uid_0
ID :123,
Membership:1234,
title:Mr.,
firstname:kumar,
lastname:sandeep,
email:sandeep@gmail.com
uid_1
ID:452,
会员:4531,
title: 。,
firstname:kumar,
lastname:sandeep
email:harry@gmail.com

这里是查询来获取您所询问的数据

  let usersRef = ref.child(users)
let queryRef = usersRef.queryOrdered(byChild:email)
.queryEqual(toValue:sandeep@gmail.com)
queryRef.observeSingleEvent(:.value,其中:$(快照)位于

中,用于snapshot.children中的子元素{
let snap = child as!FIRDataSnapshot
让userDict = snap.value as![String:Any]
let userId = userDict [ID]
让lastname = userDict [lastname]
print(\(userId!)\(lastname!))
}
})

并显示结果:

  123 sandeep 


JSON ImageI want to query like: If I give email, then I have to get the ID. At the moment I can fetch email or ID but I need solution for below example.

For example 1) if I give sandeep@gmail.com then I need it's ID as 123.

How can I achieve this in swift?

This is my JSON file:

{
   "ID": 123,
   "Membership": 1234,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep",
   "email": "sandeep@gmail.com",
   "membrshipstatus": "Active",
   "volunteer": "Yes",
   "creationDate": "2016-12-27 "
 },

{
   "ID": 452,
   "Membership": 4531,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep",
   "email": "harry@gmail.com",
   "membrshipstatus": "Active",
   "volunteer": "Yes",
   "creationDate": "2016-11-17 "
 },

This is my Swift code:

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

ref.child("1").child("email").observeEventType(.Value, withBlock: { snapshot in

            let emailid = snapshot.value as? String

            print(emailid)
        })

ref.child("1").child("ID").observeEventType(.Value, withBlock: { snapshot1 in

            let userID = snapshot1.value as? Int

            print(userID)
        })

            ref.queryOrderedByValue().observeEventType(.ChildAdded, withBlock: { snapshot2 in
                if let parentname = snapshot2.value as? Int {
                    print("The \(snapshot2.key) dinosaur's score is \(parentname)")
                }
            })
        }
    }

Swift Code related to this JSON image:

override func viewDidLoad() {
        super.viewDidLoad()



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

        let userRef = ref.child("1")

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


        userRef.queryOrderedByChild("email").queryEqualToValue("mr.stefankirsch@gmx.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!)")


            }
                    })

解决方案

You should be using the uid of the user to store data in the users node in general. Assuming your users node is called /users... like this

users
  uid_0
   "ID": 123,
   "Membership": 1234,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep",
   "email": "sandeep@gmail.com"
  uid_1
   "ID": 452,
   "Membership": 4531,
   "title": "Mr.",
   "firstname": "kumar",
   "lastname": "sandeep"
   "email": "harry@gmail.com"

here's the query to get the data you are asking about

let usersRef = ref.child("users")
let queryRef = usersRef.queryOrdered(byChild: "email")
                       .queryEqual(toValue: "sandeep@gmail.com")
queryRef.observeSingleEvent(of: .value, with: { (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!)")
      }
})

and the result prints:

123  sandeep

这篇关于如何使用swift从firebase中的JSON文件中获取电子邮件ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆