我正在努力将 Firebase 身份验证与我的 iOS 应用程序上的 Firebase 数据库连接起来。
用户已成功通过身份验证并显示在 Firebase 的身份验证部分,但数据(例如姓名/电子邮件)未显示在 Firebase 数据库中应存储的位置。我已经粘贴了下面的调试区域的代码和警告。
代码:
@objc func handleRegister() {
guard let email = emailTextField.text, let password = passwordTextField.text, let name = nameTextField.text
else {
print("form is not valid")
return
}
Auth.auth().createUser(withEmail: email, password: password, completion: { (res, err) in
if let err = err {
print(err)
return
}
self.ref = Database.database().reference()
let userId = Auth.auth().currentUser?.uid
self.ref.child("users").child(userId!).setValue(["username": name, "email": email]) {
(error:Error?, ref:DatabaseReference) in
if let error = error {
print("Data could not be saved: \(error).")
} else {
print("Data saved successfully!")
}
}
})
}
调试区警告:
2019-02-06 19:29:06.735883+0100 MyAwesomeProject[72154:5241459] libMobileGestalt MobileGestalt.c:890:此平台不支持 MGIsDeviceOneOfType。
2019-02-06 19:29:06.874146+0100 MyAwesomeProject[72154:5241580] 5.16.0 - [Firebase/Core][I-COR000022] Firebase Analytics 不可用。要添加它,请在 Podfile 中包含 Firebase/Core 或将 FirebaseAnalytics.framework 添加到链接构建阶段
2019-02-06 19:29:08.015632+0100 MyAwesomeProject[72154:5241459] [framework] CUIThemeStore:没有主题注册,id=0
2019-02-06 19:29:09.123610+0100 MyAwesomeProject[72154:5241459] [MC] systemgroup.com.apple.configurationprofiles 路径的系统组容器是/Users/mikolajsemeniuk/Library/Developer/CoreSimulator/C5E888 -4F49-8DA6-0BB11A11958F/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2019-02-06 19:29:09.125330+0100 MyAwesomeProject[72154:5241459] [MC] 从私人有效用户设置中读取。
2019-02-06 19:29:19.325723+0100 MyAwesomeProject[72154:5241579] [AutoFill] 无法显示应用程序 bundleID 的自动强密码:-234567.MyAwesomeProject 由于错误:iCloud 钥匙串被禁用:2019-2019 :23.627072+0100 MyAwesomeProject[72154:5242009] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x7fa94a80b030] 获取输出帧失败,状态 8199
2019-02-06 19:29:23.627344+0100 MyAwesomeProject[72154:5242009] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x7b1934a]
2019-02-06 19:29:23.628087+0100 MyAwesomeProject[72154:5242009] TIC 读取状态 [1:0x0]: 1:57
2019-02-06 19:29:23.628233+0100 MyAwesomeProject[72154:5242009] TIC 读取状态 [1:0x0]: 1:57
2019-02-06 19:29:23.950084+0100 MyAwesomeProject[72154:5241765] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C2.1:2][0x71fa96408 输出状态失败]
2019-02-06 19:29:23.950399+0100 MyAwesomeProject[72154:5241765] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C2.1:2][0x71fa96408 状态失败]
2019-02-06 19:29:23.951137+0100 MyAwesomeProject[72154:5241765] TIC 读取状态 [2:0x0]: 1:57
2019-02-06 19:29:23.951409+0100 MyAwesomeProject[72154:5241765] TIC 读取状态 [2:0x0]: 1:57 (lldb)
首先,您的属性列表文件plist
决定要使用的 Firebase 项目,因此无需指定:
let ref = Database.database().reference(fromURL:"https://myawesomeproject29133.firebaseio.com/")
相反,您可以ref
在viewDidLoad()
函数上方调用一个全局变量:
var ref: DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
}
在您的handleUser()
:
ref = Database.database().reference()
let userid = Auth.auth().currentUser.uid
self.ref.child("users").child(userid).setValue(["name": name,"email": email])
另外,我强烈建议您继续而不保存某人的密码,除非您对其进行加密。你不应该赤裸裸地存放它们。它存储在 Google 的服务器中,您完全没有理由查看其他人的密码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句