Firebase如何验证要登录的电子邮件属于数据库中的哪个类别?

时间:2016-09-16 19:33:43

标签: swift firebase firebase-realtime-database firebase-authentication

我正在开发新的Firebase登录。数据库中有两个类别。 "烹调"和"客户"。 "烹调"有一个CookViewController和"客户"有一个customerViewController。登录后,我需要知道此电子邮件属于哪个类别,segueCookViewControllerCustomerViewController。下面是登录的代码,但我不知道如何分辨电子邮件属于哪个类别。谢谢!

 @IBAction func loginPressed(sender: AnyObject) {

    if let email = emailField.text where email != "", let password = passwordField.text where password != "" {

      FIRAuth.auth()?.signInWithEmail(email, password: password, completion: { (user, err) in

      if err != nil {

        print(err)

          } else {

       // Here I need to know whcih view Controller to Segue to:

            self.performSegueWithIdentifier(identifier: String, sender: self)

              }

 }

数据结构如下:

enter image description here

1 个答案:

答案 0 :(得分:3)

如何制作你的JSON: -

yourApp:{
 cooks:{
       email1:true,
       email3:true,
       email4:true,
       email7:true,
       email8:true},
 customers:{
       email2:true,
       email12:true,
       email13:true,
       email4:true,
       email8:true},
 users:{
       uid1:{
          email : blah@blah.com,
          isCook: true
            },

       uid2:{
          email : burp@blah.com,
          isCook: false
            }....
          } 
        }

因此,您可以签入cooks部分或客户部分或用户部分下的uid,然后与isCook节点相关联,如果他是 - &gt;转到cookViewController,否则转到customerViewController < / p>

最简单的方法是检查uid : -

 FIRDatabase.database().reference().child("users/\(FIRAuth.auth()!.currentUser!.uid)/isCook").observeSingleEventOfType(.Value,withBlock:{(snap) in 
    if let isThisUserCook = snap.value as? Bool //or String{
           if isThisUserCook == true{

                //segue to cookVC
              }else{
                //segue to customerVC

                 }
            }
      })