Ios Firebase数据库
问题:由于某些原因,数据未发送到firebase中的我的数据库。有人知道为什么没有发送信息吗 我用//*******突出显示代码,以显示我将其发送到的位置 规则:Ios Firebase数据库,ios,swift,firebase-realtime-database,Ios,Swift,Firebase Realtime Database,问题:由于某些原因,数据未发送到firebase中的我的数据库。有人知道为什么没有发送信息吗 我用//*******突出显示代码,以显示我将其发送到的位置 规则: { "rules": { ".read": "true", ".write": "true" } } import UIKit import Firebase import FirebaseDatabase import KeychainSwift class
{
"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)
}
}
}
}
}
}
}
您需要作为布尔值,而不是字符串“true” 在规则中添加“用户”,如下所示:
"rules": {
"Users":{
".read": "true",
".write": "true"
}
}
你能在firebase日志中看到新用户吗???或者这也不起作用?是的,我可以在Logu中看到用户显示数据库的结构…数据库只是默认的,没有添加任何内容。你说的布尔值是什么意思?它不允许{“规则”:{“用户”:{.read”:“true”,“.write”:“true”}}谢谢你的解决方案,欢迎你,但是很明显梅奇登找到了正确的解决方案?是的。问题出在Firebase数据库自身的规则范围内。我还在学习firebase,所以这是一个巨大的帮助。
"rules": {
"Users":{
".read": "true",
".write": "true"
}
}