【发布时间】:2017-07-05 22:33:14
【问题描述】:
JSON Image我想查询:如果我给了电子邮件,那么我必须得到ID。目前我可以获取电子邮件或 ID,但我需要以下示例的解决方案。
例如
1)如果我给sandeep@gmail.com,那么我需要它的ID为123。
我怎样才能快速做到这一点?
这是我的JSON 文件:
{
"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 "
},
这是我的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()
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)")
}
})
}
}
与此 JSON 图像相关的 Swift 代码:
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!)")
}
})
【问题讨论】:
-
对不起,我的问题不同。例如 1)如果我给 sandeep@gmail.com 那么我需要它的 ID 为 123。我怎样才能在 swift 中实现这一点?
-
这是 Firebase 中的基本查询。请查看我的回答并阅读Working with Lists,尤其是排序和过滤数据部分。
标签: ios json swift firebase firebase-realtime-database