Ios 显示从Firebase数据库检索的数据
我在Firebase中创建了一个数据库 结构如下:Ios 显示从Firebase数据库检索的数据,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我在Firebase中创建了一个数据库 结构如下: M_Accounts atest email: "atest@test.com" password: "pass1" btest email: "btest@test.com" password: "pass2" 我希望检索特定用户的信息(例如“atest”)并在XCode 8.1-Swift中的单独标签上显示信息 例如,我想在Label1.text上显示电子邮件,在Label2.t
M_Accounts
atest
email: "atest@test.com"
password: "pass1"
btest
email: "btest@test.com"
password: "pass2"
我希望检索特定用户的信息(例如“atest”)并在XCode 8.1-Swift中的单独标签上显示信息
例如,我想在Label1.text上显示电子邮件,在Label2.text上显示密码
还有什么我可以做的吗?我试过了,但没有成功
下面是我的代码(我是XCode新手,自学成才)
用户名变量是从另一个表单传递的
var username = ""
//reference to database
self.dbReference = FIRDatabase.database().reference()
//reference to users in database
self.usersReference = dbReference.child("M_Accounts").child(username)//.queryOrdered(byChild: "username")
//data comes into a snapshot object
self.usersReference.observe(.childAdded, with: { (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String, String>
//use the keys to get the values
let email = snapshotValue["email"]
let password = snapshotValue["password"]
self.label1.text = email!
self.label2.text = password!
var username=“”
//对数据库的引用
self.dbReference=FIRDatabase.database().reference()
//对数据库中用户的引用
self.usersReference=dbReference.child(“M_账户”).child(用户名)/.queryOrdered(byChild:“用户名”)
//数据进入快照对象
self.usersReference.observe(.childAdded,其中:{(快照)在
让snapshotValue=snapshot.value为!字典
//使用键获取值
让电子邮件=快照值[“电子邮件”]
让密码=快照值[“密码”]
self.label1.text=电子邮件!
self.label2.text=密码!
在observe闭包内-如果添加:print(snapshot)它是否打印atest节点?此外,您可能希望对字典使用此格式:let snapshotValueDictionary=snapshot?.value as![String:AnyObject]该表单在我运行时崩溃(因为代码在ViewDidLoad中)由于未捕获的异常“InvalidPathValidation”,我收到此错误终止应用程序,原因:'(子项:)必须是非空字符串,并且不包含“.”#“$”[”或“]'”***第一次抛出调用堆栈:
@JayYour code“works”,因此问题是您的用户名-您发布的代码中有一个空字符串(username=”“)因此,它需要包含一个有效的键(父节点)名称。@如果是这种情况,我如何使它们基于当前登录的用户显示特定的用户信息,有什么建议吗?因为从以前的表单传递不会起作用。