2017-02-24 51 views
0

问题:由于某些原因,数据未被发送到我的Firebase数据库。任何人都可以找出为什么信息不被发送?Firebase DataBase

我用// ********突出显示了代码,以显示我发送它的位置。

规则:

{ 
    "rules": { 
       ".read": "true", 
       ".write": "true" 

    } 
} 

import UIKit 
import Firebase 
import FirebaseDatabase 
import KeychainSwift 




class SignUpController: UIViewController { 

    //INPUT - from keyboard email & password 
    @IBOutlet weak var emailField: UITextField! 
    @IBOutlet weak var passwordField: UITextField! 

    //Data Base Initialization 
    //var ref: FIRDatabaseReference! 

    let dataRef = FIRDatabase.database().reference() 

    override func viewDidLoad() { 
     super.viewDidLoad() 


    } 

    //PROCESS - Checks is user has already been logged in 
    override func viewDidAppear(_ animated: Bool) { 

     let currentUser = FIRAuth.auth()?.currentUser 

     if currentUser != nil { 
      performSegue(withIdentifier: "SignIn", sender: nil) 
      } 


    } 

    func CompleteSignIn(id: String){ 
     let keyChain = DataService().keyChain 
     keyChain.set(id , forKey: "uid") 
    } 


    //If SignUp button is pressed user will be directed to sign up page 
    @IBAction func LoginPressed(_ sender: Any) { 
     self.performSegue(withIdentifier: "BackToLogin", sender: nil) 
    } 





    /*If both password and email contain text lets put them into string variables 
     called email & password. Creates user and authorizes sign in          */ 

    @IBAction func SignIn(_ sender: Any){ 

     if let email = emailField.text, let password = passwordField.text { 

      FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in 
       if error == nil { 

        self.CompleteSignIn(id: user!.uid) //Completese Database Sign in 
        //************************************************ 
        //Send information to Database 
        let userEmail : String = self.emailField.text! 
        let userPassword : String = self.passwordField.text! 
        let userID : String = user!.uid 
        self.dataRef.child("Users").child(userID).setValue(["Email": userEmail, "Password" : userPassword]) 
       //************************************************ 
        print("Sign in Test") 

        self.performSegue(withIdentifier: "SignIn", sender: nil) 

       } else { 
        FIRAuth.auth()?.createUser(withEmail: email, password: password) { (user, error) in 
         if error != nil { 

          Alerts().invalidSignUpAlert(sender: self) //Alert for invalid email & Password 
          print("cant sign in user") //Programmer Debugging 

         } else { 
          self.CompleteSignIn(id: user!.uid) 
          self.performSegue(withIdentifier: "SignIn", sender: nil) 
         } 
        } 
       } 
      } 
     } 
    } 
} 
+0

你能够在Firebase日志中看到新用户?或者那也不起作用? – 2017-02-24 09:21:55

+0

是的,我能看到用户在日志中 –

+0

可以显示数据库的结构... – 2017-02-24 09:28:17

回答

0

添加 “用户”:

"rules": { 
    "Users":{ 
    ".read": "true", 
    ".write": "true" 
    } 
} 
0

,如下图所示,您需要为布尔值,而不是字符串 “true” 的规则

{ 
    "rules": { 
       ".read" : true, 
       ".write":true 

    } 
} 
+0

我真的不能看到为什么它不工作。 –

+0

复制并粘贴上面的代码,它将起作用。 – Aragunz

+0

{ “规则”:{ “用户”:{ “.read ”: “真”, “ .WRITE”: “真正的” } \t}} –