Основная проблема - проверка, есть ли у пользователя дочерний элемент в базе данных Firebase, чтобы я знал, регистрируется ли он или входит в систему.
Часть 1: Часть 1 (Дочерняя база данных (это работает) и настройка пользователя по умолчанию (я не знаю, как проверить, что это сработало)
Часть 2: в другом файле .Swift (Проверьте, существует ли пользовательское значение по умолчанию (aka Education Child). У меня почти ничего нет, кроме того, я знаю, что оно должно войти в viewDidAppear
Часть 1
@IBAction func SubmitPressed(_ sender: Any) {
let databaseRef = Database.database().reference()
let uid = Auth.auth().currentUser!.uid
databaseRef.child("Education").child(uid).setValue(self.Education.text!)
UserDefaults.standard.set("Education", forKey: "Education")
часть 2
func viewDidAppear (_ animated: String) {
??????
}
Нет ошибки для части 1, хотя и не уверен, что она создала пользовательские настройки по умолчанию. Для части 2 я перепробовал кучу вещей, но не сработал.
Вот обновленный код после первого ответа:
import Foundation
import UIKit
import SwiftKeychainWrapper
import Firebase
import CoreFoundation
import AVFoundation
import FirebaseDatabase
var educationCache : String {
get {
return (UserDefaults.standard.string(forKey: "Education")!)
} set {
UserDefaults.standard.set(newValue, forKey: "Education")
}
}
соответствующая часть образования / личная информация введите страницу
@IBAction func SubmitPressed(_ sender: Any) {
let databaseRef = Database.database().reference()
let uid = Auth.auth().currentUser!.uid
databaseRef.child("Education").child(uid).setValue(self.Education.text!)
// The following line will save it in userDefault itself. And you dont have to call the whole UserDefault Everywhere
educationCache = "Education"
self.performSegue(withIdentifier: "tohome", sender: nil)
}
Домашняя страница
import Foundation
import UIKit
import SwiftKeychainWrapper
import Firebase
import CoreFoundation
import AVFoundation
import FirebaseDatabase
class homepage:UITableViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if educationCache.count < 0 {
self.performSegue(withIdentifier: "toFeed", sender: nil)
}
}
override func viewDidLoad() {
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Sign Out", style: .plain, target: self, action: #selector(signOut))
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@objc func signOut (_sender: AnyObject) {
KeychainWrapper.standard.removeObject(forKey: "uid")
do {
try Auth.auth().signOut()
} catch let signOutError as NSError {
print ("Error signing out: %@", signOutError)
}
dismiss(animated: true, completion: nil)
}
}