如何使用swift从firebase中的JSON文件中获取电子邮件ID [英] How to fetch email id from JSON file in firebase using swift
问题描述
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屋!