Как мне задать имя потомка в Firebase для пользовательского ввода из текстового поля? - PullRequest
0 голосов
/ 05 мая 2018

Вот как я хочу, чтобы мое дерево данных выглядело в Firebase:

Пользователи:

- Travis:

------ travisData:

- Стефани:

------ stephanieData:

Моя проблема в том, что я не могу назвать ребенка, используя пользовательский ввод из текстового поля.

Вот код, который у меня есть:

ref = Database.database().reference()

let username = String(emailTextField.text!)

//ref.child("users").setValue(["username": username])

ref.child("users").setValue(["\(username)": calendar])

Закомментированная строка создает дочерний элемент с именем «username» с textfield.text в качестве его содержимого. Но как я могу создать дочерний элемент с именем textfield.text, с другими данными в качестве его содержимого? Я пробовал несколько комбинаций использования .child и .setValue, но все продолжает выдавать ошибку, когда я пытаюсь использовать переменную username вместо простой строки.

Вот ошибка, которую я получаю: enter image description here

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Ваша проблема в том, что Firebase не принимает "." символ в их именах пользователей. Вы получите ту же проблему, даже если вы наберете строку букв с "." например, "adfojnajsdnfjs.fjknasd" вместо "username".

0 голосов
/ 08 мая 2018

Как вам требуется, я думаю, этот код поможет вам

ref.child("users").child("\(inputUsername)").updateChildValues(["travidDataKey": userData])

И изображение результата

users:
       Travid2:
                travidDataKey:"Travid Data"
0 голосов
/ 05 мая 2018

Я думаю, что вы ищете:

ref.child("users").child(username).setValue(calendar)

Хотя это зависит от значения calendar.

По крайней мере, это должно работать:

ref.child("users").child(username).setValue(true)

И дать вам следующий JSON:

"users": {
  "Travis": true
}

Чтобы написать более сложную структуру, вы можете, например, сделать:

ref.child("users").child(username).child("name").setValue(username)

Что приводит к:

"users": {
  "Travis": {
    name: "Travis"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...