2016-11-02 42 views
0

这是工作,但由于某种原因它现在不工作。我正在尝试创建一个帐户并将用户置于数据库中,但它添加的所有内容都是身份验证选项卡而不是数据库。我在我的代码的几乎每一行都放了断点,并且只有其中的两个被打中,并且我的打印语句“SHEEEEETTT”没有被打印。任何想法为什么发生这种情况?Firebase不添加用户swift 3

这里是我的代码:

Let dataBaseRef = FIRDatabase.database().reference(fromURL: mydatabaseurl) 

////breakpoint hits 
FIRAuth.auth()?.createUser(withEmail: emailText.text!, password: passwordText.text!, completion: { 
      (user, error) in 

      print("SHEEEEETTT") 

      if(error != nil){ 
       if let error = error as? NSError { 
        if error.code == 17999{ 
         print("ERROR invalid email address") 

        }else{ 

         print("ERROR \(error.localizedDescription)") 
        } 
       } 


      }else { 

      guard let uid = user?.uid else { 

       return 
      } 

       print("user created") 

       let usersRef = self.dataBaseRef.child("users").child(uid) 
       let values = ["email":self.emailText.text!, "password": self.passwordText.text!,"name": self.nameText.text!,"type": self.type] 
       //note: autheticate image with NSUID().UidString 
       usersRef.updateChildValues(values, withCompletionBlock: { (err,rf) in 

        if err != nil { 

         let errorAlert = UIAlertController(title: "\(err)", message: "", preferredStyle: .alert) 
         let okay = UIAlertAction(title: "Okay", style: .cancel, handler: nil) 

         errorAlert.addAction(okay) 

         self.present(errorAlert, animated: true, completion: nil) 

         print("ERROR \(err.debugDescription)") 

        } 

        print("saved user") 



       }) 


      } 

     })//breakpoint hits 
+0

* SHEEEEETTT *正在打印吗? – Dravidian

+0

@Dravidian不,它不是。我的打印声明没有被打印 – user3462448

回答

0

的iF SHEEEEETTT被打印并且使用的是每个人的特征一封电子邮件然后再尝试写这样的数据: -

FIRDatabase.database().reference().child("users/\(FIRAuth.auth()!.currentUser!.uid)").setValue(values, withCompletionBlock: {(Err,SnapRef) in 

     if Err != nil{ 

       //Show alert 

      }else{ 

      print("User Created") 

     } 
    }) 

如果仍然犯规工作,请尝试打印FIRAuth.auth()!.currentUser!.uid并检查您是否收到信息

+0

表未打印。 – user3462448

+0

然后可能是它的一个连接错误。 – Dravidian

0

我此行

let databaseRef = FIRAuth.auth()?.database().reference 

我想在我自己的项目和auth没有一个数据库对象,甚至他们的documentation证明了这一点很怀疑。加上它是有道理的,因为Firebase希望这两个模块完全相互分离,即认证和数据库。

如果您想获得数据库参考,

  1. 确保你已经导入无论是FirebaseFirebaseDatabase模块在各自的VC
  2. let databaseRootRef = FIRDatabase.database().reference()。这会给你参考根节点。您也可以使用reference(fromURL:)reference(withPath:)。更多info
+0

我后来补充说,我补充说错了。我会更新我的问题以使其更准确。 – user3462448

+0

您是否尝试过打印'FIRAuth.auth.currentUser'来查看它是否包含任何信息? – eshirima

相关问题