Запрос массива из Firestore - PullRequest
0 голосов
/ 06 марта 2019

У меня есть несколько строк и 2 массива, хранящихся в Firestore, и сейчас я пытаюсь их получить, но понятия не имею, как.Ну, строки работают нормально, но я не знаю, как я могу запросить массивы.Я получаю код ошибки:

Тема 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения

А вот мой код:

                            //For-loop
                        for document in QuerySnapshot!.documents
                        {
                            self.list.removeAll()
                            //let document = QuerySnapshot!.documents
                            let data = document.data()

                            let data1 = data["Dog"] as? String
                            let data2 = data["Person"] as? String
                            let data3 = data["What"] as? String
                            let data4 = data["Time"] as? String
                            let data5 = data["Date"] as? String
                            let data6 = data["Kilometers"] as? String
                            let data7 = data["Timer"] as? String
                            let data8 = data["Latitude"] as? Array<Double>
                            let data9 = data["Longitude"] as? Array<Double>

                            let txt = listTxt(dog: data1!, person: data2!, action: data3!, time: data4!, date: data5!, kilometers: data6!, timer: data7!, latitude: data8 ?? [], longitude: data9 ?? [])

                            print(txt)

                            tempTxt.append(txt)

                        }
                        self.list = tempTxt
                        self.tableView.reloadData()
                    }

Массивы хранятся как Double , и цель состоит в том, чтобы получить его как double и снова преобразовать в CLLocationCoordinate2D, чтобы я мог использовать координаты для карты.Если вы знаете, как решить эту проблему, пожалуйста, дайте мне знать.:)

Внутри класса:

class listTxt
{
    var dog: String
    var person: String
    var action: String
    var time: String
    var date: String
    var kilometers: String
    var timer: String
    var latitude: [String]
    var longitude: [String]

    init(dog: String, person: String, action: String, time: String, date: String, kilometers: String, timer: String, latitude: [String], longitude: [String])
    {
        self.dog = dog
        self.person = person
        self.action = action
        self.time = time
        self.date = date
        self.kilometers = kilometers
        self.timer = timer
        self.latitude = latitude
        self.longitude = longitude
    }

Внутри ячейки истории

    class HistoryCell: UITableViewCell
{

    @IBOutlet weak var DogName: UILabel!
    @IBOutlet weak var Person: UILabel!
    @IBOutlet weak var Action: UILabel!
    @IBOutlet weak var Date: UILabel!
    @IBOutlet weak var Time: UILabel!
    @IBOutlet weak var timer: UILabel!
    @IBOutlet weak var kilometer: UILabel!
    var latitude: [String] = []
    var longitude: [String] = []

    func setCell(list: listTxt)
    {
        DogName.text = list.dog
        Person.text = list.person
        Action.text = list.action
        Date.text = list.date
        Time.text = list.time
        timer.text = list.timer
        kilometer.text = list.kilometers
        latitude = list.latitude
        longitude = list.longitude
    }
}

Данные хранилища: na

Заранее спасибо.:)

Ответы [ 2 ]

3 голосов
/ 06 марта 2019

Попробуйте заменить следующие строки кода:

let data8 = data["latitude"] as? [Double]
let data9 = data["longitude"] as? [Double]

Причина: доступ к данным с неправильными ключами

0 голосов
/ 06 марта 2019

вы пробовали, как показано ниже?

 let data8 = data["latitude"] as? [Double]
 let data9 = data["longitude"] as? [Double]

На самом деле вы обращаетесь к данным с неправильными ключами ... "широта", "долгота" являются допустимыми ключами, но вы получаете с "Широта", "Долгота""которого нет в вашем снимке данных

Примечание Пожалуйста, проверьте при сохранении данных, которые вы отправляете в виде массива double.

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