и спасибо за помощь!firebase Databse Query Swift не читает
Каждый пользователь моего приложения ответит на ряд вопросов. Я успешно написал эти ответы на мою базу данных (да ну мне!) В следующей структуре (см прилагаемого рис слишком link to database structure): Структура База данных:
- driverQuestions
- 'userId' (this the UID generated at authentication)
- answers (this is the answer that I need to display in the users profile for future reference
- questions (this is the question that the user has answered)
База данных Правил:
{
"rules": {
"driverQuestions": {
"$userId": {
".indexOn": "answers"
}
},
".read": "auth != null",
".write": "auth != null"
}
}
Я попытался запросить мою базу данных с помощью этого кода:
import FirebaseDatabase
import Firebase
import FirebaseAuth
let userId = FIRAuth.auth()?.currentUser?.uid
var ref: FIRDatabaseReference!
ref?.child("driverQuestions").child(userId!).child("answers").queryOrdered(byChild: "answers").queryEqual(toValue: userId).observe(.value, with: { (snapshot) in
let postDict = snapshot.value as? [String : AnyObject] ?? [:]
print(postDict)
В моем консуле я ничего не печатаю. Я думаю, что проблема в том, что userId уникален, но я не уверен, что с этим делать ... Можете ли вы, пожалуйста, сообщить мне, что я делаю неправильно, и что мне нужно сделать, чтобы иметь возможность хранить ответы из базы данных для зарегистрированного пользователя
Позвольте мне знать, если вам потребуется дополнительные разъяснения
Еще раз спасибо за ваше время и помочь
спасибо, что нашли время, чтобы прочитать мой пост! Отличное объяснение, и это имеет смысл ... к сожалению, ничего не печатается в консуле! Любые другие предложения ??? Вы уверены, что мой код, относящийся к userId, верен? любые другие рекомендации, как обращаться с уникальными идентификаторами? – theGuiza
Способ работы с структурированными данными будет работать. Узел вопросов драйвера, случайный ключ UID и данные для этого узла. Я обновил свой ответ, чтобы получить все пользовательские данные, а не только данные в узле ответов прошедшего пользователя. Возможно, у UID, который вы проходили, не было данных ответа, которые ничего не печатали. – matthew
Эй, это была проблема, которую я раньше не видел: var ref: FIRDatabaseReference! Если вы хотите создать корневую ссылку, лучший способ сделать это - разрешить rootRef = FIRDatabase.database(). Reference() – matthew