Как настроить Firebase для Swift и считывать данные - PullRequest
0 голосов
/ 28 ноября 2018

Я установил Firebase для своего приложения Swift IOS

В своем файле AppDelegate я импортирую Firebase следующим образом:

  import Firebase
    import FirebaseDatabase

и инициализирую его:

FirebaseApp.configure()

После этого я проверяю, подключена ли база данных, и сначала она печатает «Не подключено», но затем «Подключено», поэтому я предполагаю, что она успешна

    var ref:DatabaseReference!
    var databaseHandle:DatabaseHandle!

    override func viewDidLoad() {
     let connectedRef = Database.database().reference(withPath: ".info/connected")
        connectedRef.observe(.value, with: { snapshot in
            if snapshot.value as? Bool ?? false {
                print("Connected")
            } else {
                print("Not connected")
            }
        })
}

Но затем я пытаюсь получить доступ к своим данным, и это даетмне ничего!

 ref = Database.database().reference()
    databaseHandle = ref.child("Meal").observe(.childAdded, with: { (snapshot) in
        print(snapshot.value as Any)

Вот снимок с консоли Firebase enter image description here

Также я могу переключиться на базу данных в реальном времени, где нет данных, но там я могуразрешить доступ для чтения / записи (я установил оба значения в true)

  "rules": {
    ".read": true,
    ".write": true
  }

В чем может быть проблема, поэтому я не могу распечатать свои данные? .... enter image description here

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Существует разница в доступе к базе данных Firebase Realtime и данным пожарного хранилища

Вы можете получить доступ к данным облачного пожарного хранилища, как показано ниже

В ViewDidLoad

let db = Firestore.firestore()
let ref =  db.collection("Meal").document("\(myRiderUID!)")
db.collection("Meal").getDocuments() { (querySnapshot, err) in
    if let err = err {
        print("Error getting documents: \(err)")
    } else {
        for document in querySnapshot!.documents {
            print("\(document.documentID) => \(document.data())")
        }
    }
}
0 голосов
/ 28 ноября 2018

Проблема в том, что вы пытаетесь получить доступ к Firestore с помощью методов Firebase.

"Но тогда я пытаюсь получить доступ к своим данным, и это ничего не дает мне!"Это ничего не дает, потому что в Firebase нет данных, все ваши данные находятся в Firestore.

См. Это руководство для Firestore: https://firebase.google.com/docs/firestore/quickstart

и это, чтобы понять разницу между Firebase иМагазин огня: https://firebase.google.com/docs/database/rtdb-vs-firestore

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