如何快速从 firebase 获取用户的特定数据?
Posted
技术标签:
【中文标题】如何快速从 firebase 获取用户的特定数据?【英文标题】:how can i get a specific data for a user from firebase in swift? 【发布时间】:2019-07-25 12:45:19 【问题描述】:我正在尝试创建一个用户信息数据库并通过对每个用户使用 firebase 来观察它们。我认为创建部分很顺利,但是当我调用observeSingleEvent
并打印快照值时,它说快照为空。你们能帮我解决这个问题吗?
这是我的 firebase 数据库控制台显示的内容;
>sinav-be280
>>member
>>>'SffbOC1UoYcmfBNCrjn2aOhFM4F2'
>>>>mail: "1@1.com"
>>>>name: "1"
>>>>password: "123123"
>>>>phone: "1"
这是我的代码
func createUserIfno()
let userInfoDB = ref.child("member")
let userDictionary = [
"name": self.nameTextView.text!,
"phone": self.phoneNumberTextField.text!,
"mail": Auth.auth().currentUser ? .email!,
"password" : self.passwordTextField.text!,
]
userInfoDB.child(userID!).setValue(userDictionary)
(error, reference) in
if error != nil
print(error!)
else
print("info saved")
func printUserInfo()
let userInfoDB = ref.child("member").child(userID!)
userInfoDB.keepSynced(true)
userInfoDB.observeSingleEvent( of: .value, with:
(snapshot) in
if !snapshot.exists()
print("snapshot does exist")
print(snapshot)
return
)
它说;
snapshot does exist
Snap (1jMpyCCbt0crfUdINnlSupRdcqk1) <null>
我什至不知道1jMpyCCbt0crfUdINnlSupRdcqk1
id 是什么。
【问题讨论】:
你什么时候打电话给printUserInfo()
?
在viewDidLoad中
(snapshot , error) in and print error 看看它的实际含义
【参考方案1】:
实际上,我稍微玩了一下代码并解决了问题。
在我的应用程序中,我编写了用于创建用户和分别创建数据库的代码,因此在 firebase 中,不知何故,第一个用户 ID 进入第二个用户的信息列表,第二个进入第三个。所以我在 createUser 函数中调用了我的 createUserInfo 函数并解决了问题。
【讨论】:
以上是关于如何快速从 firebase 获取用户的特定数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 firebase 获取特定文档数据并以字符串形式返回
如何从所有用户 ID (UID) 中获取特定值并保存在 RecyclerView Firebase UI