Я пытаюсь сохранить элементы в базе данных Firebase под дочерним элементом, взятым из текстового поля.Я до сих пор не дошел до этого, я все еще пытаюсь понять, как проверить, существует ли уже значение.Вот мой код ...
@objc func submitNote() {
print("Attempting to save or update note")
//Check if file exists
if name != nil && text != nil {
//Access database
var ref: DatabaseReference!
ref = Database.database().reference()
ref.child("lists").observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.hasChild(self.name!){
print("true")
//Update
return
} else {
print("false")
//Create
self.uploadNew()
}
})
return
} else {
print("Error")
return
}
}
Это должна быть функция @objc, так как она запускается с помощью #selector в строке меню.Как вы можете видеть, он проверяет, чтобы текстовые поля не были пустыми.Вот переменные ...
public var name: String?
public var text: String?
, которые устанавливаются внутри отдельных функций ...
name = titleText.text
text = textView.text
Причина, по которой я установил переменные таким образом, заключается в том, что я создаю представлениепрограммно, и оба отдельных текстовых представления / поля устанавливаются внутри функций, поэтому я не думаю, что могу получить к ним доступ из функции submitNote.В любом случае, я получаю сообщение об ошибке ...
*** Terminating app due to uncaught exception 'InvalidPathValidation', reason: '(hasChild:) Must be a non-empty string and not contain '.' '#' '$' '[' or ']''
Я проверил и проверил трижды, но в текстовых полях этих значений нет, и хотя оператор if предназначен для остановкиприложение продолжается, если они не равны нулю. Я пытался с текстом в полях, но независимо от того, что, если я нажму кнопку, чтобы запустить эту функцию, я получу ту же ошибку.Кто-нибудь знает как это исправить?