尝试将用户电子邮件和姓名保存到 Firebase 数据库时出现异常
Posted
技术标签:
【中文标题】尝试将用户电子邮件和姓名保存到 Firebase 数据库时出现异常【英文标题】:Exception when trying to save user email and name in to the Firebase DB 【发布时间】:2016-11-04 08:57:53 【问题描述】:我正在使用 swift 3.0 开发一个项目,在尝试将两个字符串值保存到 Firebase 数据库时遇到以下异常。
由于未捕获的异常“InvalidFirebaseData”而终止应用程序,原因:“(updateChildValues:withCompletionBlock:) 无法将 _SwiftValue 类型的对象存储在。只能存储 NSNumber、NSString、NSDictionary 和 NSArray 类型的对象。'
类的代码如下。 我错过了什么?
import UIKit
import Firebase
class ViewController: UIViewController
@IBOutlet weak var userNameTextField: UITextField!
@IBOutlet weak var userEmailTextField: UITextField!
@IBOutlet weak var passWordTextField: UITextField!
override func viewDidLoad()
super.viewDidLoad()
//
@IBAction func loginPressed(_ sender: AnyObject)
FIRAuth.auth()?.createUser(withEmail: userEmailTextField.text!, password: passWordTextField.text!, completion: (user :FIRUser?, error) in
if error != nil
print("error in login")
return
else
print("loggin success")
let ref = FIRDatabase.database().reference(fromURL: "https://chatsample-4cc11.firebaseio.com/")
let values = ["username" : self.userNameTextField.text, "email" : self.userEmailTextField.text]
ref.updateChildValues(values, withCompletionBlock: (err, ref) in
if err != nil
print(err)
return
print("saved user successfully to firebase DB")
)
//ref.updateChildValues(values)
//ref.updateChildValues(["somevalue": 123123])
)
【问题讨论】:
【参考方案1】:我认为问题在于您没有解开用户名和电子邮件的值,因此这些值的类型是可选的。你应该改成
let values = ["username" : self.userNameTextField.text!, "email" : self.userEmailTextField.text!]
【讨论】:
以上是关于尝试将用户电子邮件和姓名保存到 Firebase 数据库时出现异常的主要内容,如果未能解决你的问题,请参考以下文章