【问题标题】:How to get user specific data in Firebase Swift 3如何在 Firebase Swift 3 中获取用户特定数据
【发布时间】:2017-10-15 18:54:06
【问题描述】:

我想在应用程序中检索当前用户的数据。我怎样才能做到这一点。 ?

这是我当前用户的 firebase id:

我的表节点是:

这里很明显我的uid 和节点标题是不同的。那么如何获取特定用户的数据。

到目前为止我的代码:

self.ref =  Database.database().reference()
let userID = Auth.auth().currentUser?.uid
self.ref.child("member").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
 if !snapshot.exists() {
                    // handle data not found
                    return
 }
})

【问题讨论】:

    标签: firebase swift3 firebase-realtime-database


    【解决方案1】:

    您将获得不同的 ID,因为第一个 Wnlxl...userID 而另一个 -KVvR664...autoID
    你在member后面设置了.childByAutoID,如果你想检索当前用户的数据,你必须把userID放在member后面。
    然后您可以通过userID轻松检索用户的数据,因为每个详细信息都将保存在userID下。
    希望此代码对您有用。

    let ref : FIRDatabaseReference!
    ref = FIRDatabase.database().reference()    
    ref.child("member").child(user!.uid).setValue(["name": self.fullName.text!, "email": self.email.text!, "mobile": self.mobile.text!, "doj": self.doj.text!])
    

    【讨论】:

    • 我不想设置值而是获取当前用户的详细信息
    • 你已经在member后面设置了.childByAutoID,如果你想在UserID下保存详细信息,那么你必须在member后面添加userID
    【解决方案2】:

    我认为您的 Firebase 屏幕截图不正确 - 您的代码可以正常工作,但您创建这些成员的方式是错误的。

    创建成员时,您说的是.childByAutoID,您应该使用Auth.auth().currentUser?.uid。如果这是有道理的。告诉我。

    编辑:要在节点成员中使用 userUID 数据创建用户,请执行以下操作:

    if let userUID = Auth().auth.currentUser?.uid{
       ref.child("members/\(userUID)").setValue(*YOURMEMBERINFODICTIONARY*)
    }
    

    【讨论】:

    • 没找到你吗?
    • 您发布的屏幕截图。发布创建成员的 firebase 调用,我可以解释一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多