Firebase Swift 3查看用户数据库

时间:2017-05-27 13:59:38

标签: xcode firebase swift3 firebase-realtime-database

我有一个问题,我已经编写了一个应用程序,用户可以登录并注册,包括姓名,电子邮件,位置和地址。如何让用户只在表格中或作为标签显示该用户的用户信息?

有谁知道一个好的教程?

Firebase Database

import UIKit
import Firebase
import FirebaseStorage

class PersoenlicheDatenView: UIViewController, UITableViewDataSource, UITableViewDelegate {

    var ref: FIRDatabaseReference?
    var myList:[String] = []
    var handle:FIRDatabaseHandle = 0

    @IBOutlet weak var myTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let ref = FIRDatabase.database().reference().child("users").queryOrdered(byChild: "email").queryEqual(toValue : "test@test.de")

        ref.observe(.value, with:{ (snapshot: FIRDataSnapshot) in
            for snap in snapshot.children {
                print((snap as! FIRDataSnapshot).key) 
                self.myTableView.reloadData()
            }
        }) 
    }


    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         return myList.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
        cell.textLabel?.text = myList[indexPath.row]
        return cell
    }
}

1 个答案:

答案 0 :(得分:0)

如果您的问题是显示用户自己的信息,我建议您使用Firebase身份验证。

以下是一些documentation

Firebase身份验证为您提供了一种简单的方法来登录用户,并通过他们的UID存储他们的帐户(它还允许您登录和注销用户)。因此,如果您已实施Firebase身份验证,则可以使用此代码。

let userId = (FIRAuth.auth()?.currentUser?.uid)!
ref?.child("users").child(userId).observeSingleEvent(of: .value, with: { (snapshot) in
            print(snapshot.childSnapshot(forPath: "name").value as! String)
            print(snapshot.childSnapshot(forPath: "any place you would like to query from").value as! String)
})

我希望您考虑这个答案,因为Firebase身份验证为我创造了奇迹并且非常容易使用。它消除了管理用户的所有困难部分,并加快了整个过程。