Курс firebase help

swift3

#1

прохожу курс firebase возникла проблема на следующем шаге скачан файл гуглсервис далее по инструкции нужно в дириктории проекта создать файл: $ pod init
и тут выходит следующее в терминале:

MacBook-Pro-Nikita:~ Nik$ /Users/Nik/Documents/todolist
-bash: /Users/Nik/Documents/todolist: is a directory
MacBook-Pro-Nikita:~ Nik$ Pod init
[!] No Xcode project found, please specify one

помогите решить ) всем заранее благодарен


#2

Для перехода в директорию нужно использовать команду cd
Советую познакомиться с основами работы в терминале. Видео: http://swiftbook.ru/content/koposhilka/terminal-1

~> cd XCodeProjects/swiftbook/course_13/ToDoFire
~/XCodeProjects/swiftbook/course_13/ToDoFire> pod init

#3

спасибо, прочитал помогло )


#4

помогите теперь еще одна проблема, все тот же курс 6 урок добавляем юсеров, скрин ошибки прилагаю, не пойму почему вроде все как по инструкции грубо говоря делаю


#5


#6

вроде бы аргумент который он ожидает и есть тот самый


#7

#8

отлично, помогло ) спасибо.
иду далее по курсу и опять ошибка.
Теперь уже в самой работе - видео про сохранениям и извлечение данных из firebase
после добавления блока

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)

    self.ref.observe(.value, with: { [weak self] (snapshot) in
        var tasken = Array<Task>()
        for item in snapshot.children {
            let task = Task(snapshot: item as! DataSnapshot)
            tasken.append(task)
        }
        self?.tasks = tasken
        self?.tableView.reloadData()
})

выходит ошибка после добавления любого значения, скрин ниже


#9

если удалить все данные из базы, то можно добавить ровно один раз данные с приложения далее выходит ошибка чтения, при перезапуске сразу на ошибку вылет


#10

есть кто?
или ни кого


#11

Дабы не плодить темы…
Пытаюсь понять и осознать логику firestore.
Никак я не пойму nosql.
Как связываются между собой “коллекции”…
Например, есть коллекция Users, ней пара документов (пользователей) “qwerrty” и “qazwsx”
“Users”:

  • “qwerrty”
    –name : Vasya
    –lastname : Petrov
    –age : 21
    -“qazwsx”
    –name : Anton
    –lastname : Makarov
    –age : 34

Есть коллекция c набором документов
Message:

  • “message1”
    – textMessage: “Привет”
    – dateMessage: “21/11/98”
  • “message2”
    – textMessage: “И тебе привет”
    – dateMessage: “22/11/98”

Суть - я не понимаю логики, как связывать документ одной коллекции с документом другой… создавать “привычные” индексы вручную? или как?
В уроке Ивана по firebase… ко мне придет просветление по firestore?

PS Продолжаю пытаться понять и все дальше становиться нелогично. В примерах попадаются всего одна коллекция, а внутри коллекции имеются документы и внимание!!! другие коллекции.
Т.е. чтобы прошерстить вложенную коллекцию - нужно проходить целую цепочку…


#12

Потихоньку начал разбираться.
Сейчас возник вопрос: как ко всем документам одной коллекции добавить еще одно поле?

Изменил структуру (модель данных) и теперь ко всем документам нужно добавить поля createAt и updateAt.
Моя попытка сообразить так не увенчалась успехом.

let batch = Firestore.firestore().batch()
let dic = Firestore.firestore().collection(“ideas”).document()
batch.setData([“createAt” : Date()], forDocument: dic)


#13

Успех пришел. Добавляем новое поле во все документы коллекции.

   Firestore.firestore().collection("ideas").getDocuments() { (querySnapshot, err) in
            if let err = err {
                print("Error getting documents: \(err)")
            } else {
                for document in querySnapshot!.documents {
            Firestore.firestore().collection("ideas").document(document.documentID).updateData(["createAtq":Date()])
                    print("\(document.documentID) => \(document.data())")
                }
            }
    }