Я фиктивные пользователи добавлены в мою базу Firebase и для тестирования. Я пытаюсь проверить, могу ли я проверить пользователя в БД.База данных Firebase - проверка существующего пользователя
Вначале я написал метод createUserToDatabase()
, который отлично работает. Для запросов запросов существования я написал метод doesUserExist()
, но после его запуска несколько раз, не возвращается snapshot
. Вызывается метод, но фактический запрос Firebase не выполняется.
Затем я решил сделать простой запрос для всех данных, следовательно test()
. К моему удивлению, это также не работает, хотя я использовал этот аналогичный подход для запросов в другом приложении, и он работает отлично. Ни один из трех подходов в test()
ничего не печатает.
import UIKit
import Firebase
import FirebaseDatabase
struct FirebaseNode
{
static let USERS: String = "Users"
}
class MainViewVC: UIViewController
{
static var userName: String?
var databaseRootRef: FIRDatabaseReference!
let currentUser: User = User.sharedInstance
@IBOutlet weak var userNameLabel: UILabel!
override func viewDidLoad()
{
super.viewDidLoad()
databaseRootRef = FIRDatabase.database().reference()
if let userTitle = MainViewVC.userName
{
userNameLabel.text = userTitle
}
else
{
userNameLabel.text = ""
}
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
@IBAction func createButtonAction(sender: UIButton)
{
test()
}
func doesUserExist()
{
databaseRootRef.child(FirebaseNode.USERS).queryEqualToValue(currentUser.uid).observeSingleEventOfType(.Value) { (snapshot: FIRDataSnapshot) in
if snapshot.exists()
{
print("User exists")
}
else
{
print("User doesn't exist")
}
}
}
func test()
{
databaseRootRef.observeSingleEventOfType(FIRDataEventType.ChildAdded) { (snapshot: FIRDataSnapshot) in
print(snapshot)
}
databaseRootRef.observeEventType(.ChildAdded) { (snapshot: FIRDataSnapshot) in
print(snapshot)
}
databaseRootRef.observeSingleEventOfType(.Value) { (snapshot: FIRDataSnapshot) in
print(snapshot)
}
}
func createUserToDatabase()
{
databaseRootRef.child(FirebaseNode.USERS).child(self.currentUser.uid).setValue(self.currentUser.toAnyObject())
}
}
Это структура моего Firebase DB
{
"Users":
{
"JglJnGDXcqLq6m844pZ": ---> $uid
{
"userName":"Hello John",
"firstName": "Johnita",
"lastName":"Hernandez",
"email":"[email protected]",
"profileImage": "%uid%.jpeg",
}
}
}
И это мой текущий набор правил
{
"rules": {
"Users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid",
".validate": "newData.hasChildren(['email', 'firstName', 'lastName', 'userName'])"
}
}
}
}
ошибка не отбрасывается вообще или какие-либо проблемы сообщенные AUTH.
Любая помощь будет принята с благодарностью.
Я не использую симулятор. Проводил его по телефону все время – eshirima