【问题标题】:unable to create new users with firebase. I keep getting error message "updateChildValues: at / failed: permission_denied"无法使用 firebase 创建新用户。我不断收到错误消息“updateChildValues: at / failed: permission_denied”
【发布时间】:2018-02-08 06:27:10
【问题描述】:

一年多前,我自学了如何在线编码。我自己的应用程序进展甚微。尝试创建新用户时,我不断收到相同的错误代码。 “updateChildValues: at / failed: permission_denied” 下面我将发布我的代码副本,请帮助我。

@IBAction func btnLogin(_ sender: Any) {
}
@IBOutlet weak var btnLogin: UIButton!
@IBOutlet weak var txtPassword: UITextField!
@IBOutlet weak var txtUserName: UITextField!
@IBAction func Signup(_ sender: UIButton) {
}

if txtUserName.text != "" && txtPassword.text != ""
    {

    }
    Auth.auth().signIn(withEmail: txtUserName.text!, password: txtPassword.text!) { (user, error) in
        if user != nil
        {
            //Sign in successful
            self.performSegue(withIdentifier: "segue", sender: self)
        }
        else
        {

        }

       if let myError = error?.localizedDescription
       {
        print(myError)
        }
       else{
        print("Error")
        }
    }

    let ref =  Database.database().reference(fromURL: "https://odd-jobs-llc.firebaseio.com/")
    observeKeyboardNotifications()

    ref.updateChildValues(["Customers": 123123])
}

请帮我翻过这堵砖墙。我真的很感激。谢谢你有一个美好的夜晚 扎克

【问题讨论】:

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


    【解决方案1】:

    试试这个

    @IBOutlet weak var btnLogin: UIButton!
    @IBOutlet weak var txtPassword: UITextField!
    @IBOutlet weak var txtUserName: UITextField!
    
    
    
    // Assuming this is the button you want to tap to signup the user
    @IBAction func Signup(_ sender: UIButton) {
    
        if txtUserName.text != "" && txtPassword.text != "" {
          Auth.auth().createUser(withEmail: txtUserName.text!, password: txtPassword.text!) { (user, error) in
              if user != nil {
                  print("Registration success! Now I can do whatever I want in this block")
              } else {
                 // telling you what went wrong
                 print(error?.localizedDescription)
              }
          }
        } else {
          print("One of your field is empty")
        }
    
    @IBAction func btnLogin(_ sender: Any) {
    
        if txtUserName.text != "" && txtPassword.text != "" {
           Auth.auth().signIn(withEmail: txtUserName.text!, password: txtPassword.text!) { (user, error) in
    
            if user != nil {
                //Sign in successful
                let ref =  Database.database().reference(fromURL: "https://odd-jobs-llc.firebaseio.com/")
                observeKeyboardNotifications()
                ref.updateChildValues(["Customers": 123123])
                self.performSegue(withIdentifier: "segue", sender: self)
    
            } else {
    
               if let myError = error?.localizedDescription {
                   print(myError)
               } else{
                   print("Error")
               }
            }
    
    
        }
    
       }
    }
    

    【讨论】:

    • 我已经通过电子邮件验证,规则完全相同。还有什么我想念的吗?我有两个单独的视图控制器用于注册和登录,我应该发布另一个的代码吗?但是它们几乎相同
    • @ZachWilcox 我想我找到了你的问题。
    • 你好约翰·多伊!我在我的注册视图控制器上设置了 Auth.auth().createUser(withEmail: txtUserName.text!, password: txtPassword.text!)。我认为这可以让我注册新用户。但是,我不断收到该错误代码,并且我的 firebase 身份验证中没有保存任何数据。我的代码有问题吗?我所有的网点都设置好了,只是不知道还有什么可做的。
    • Auth.auth().createUser(withEmail: self.Email.text!, password: self.Password.text!) { (user, error) in if user != nil { 这是什么我的注册视图控制器行看起来像
    • 您输入的代码使用的是 signIn 方法而不是 createUser 方法,所以我想您可能是因为拼写错误导致了问题。在您的 Appdelegate.swift 中,您是否在 didFinishLaunchingWithOptions 方法中添加了 FirebaseApp.configure()?另外,请检查您的 xcode 项目中是否有 GoogleService-Info.plist
    【解决方案2】:

    Firebase quickstart

    默认情况下,数据库只能由经过身份验证的用户读取/写入。您必须允许对您的数据库进行未经身份验证的访问。

    【讨论】:

    • 你知道我会怎么做吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    相关资源
    最近更新 更多