Добавление Firestore в мой проект приводит к ошибке моих запросов к базе данных в реальном времени. - PullRequest
0 голосов
/ 09 мая 2019

Я использую базу данных Firebase Real-time в своем проекте уже довольно давно. Недавно я добавил модуль для Firestore, чтобы использовать его вместе с другой базой данных, и все мои запросы, и только запросы для базы данных реального времени выдают следующую ошибку: «Неоднозначное использование« индекса »».

Если я удаляю модуль, все возвращается в нормальное состояние без каких-либо ошибок. Вот как я использовал код раньше: (работает)

func retriveObjects() {
    ref.child("Dinner").queryOrderedByKey().observeSingleEvent(of: .value) { (snapshot) in
        let allPosts = snapshot.value as! [String : AnyObject]
        for (_, item) in allPosts {
            if let itemCount = item["itemCount"] as? String {
                print(itemCount)
            }
        }
    }
}

Теперь эта строка дает мне ошибку:

if let itemCount = item["itemCount"] as? String

Что я могу сделать, чтобы он снова заработал, но сохранил обе базы данных?

1 Ответ

1 голос
/ 09 мая 2019

Как уже упоминалось в комментариях, значение моментального снимка приводится в качестве словаря [String: AnyObject], а затем вы пытаетесь использовать элемент в качестве словаря, но он приводится к AnyObject (который не является словарем) , Другими словами item ["itemCount"] не работает для AnyObject.

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

self.ref.child("Dinner").queryOrderedByKey().observeSingleEvent(of: .value) { (snapshot) in
    let allPosts = snapshot.children.allObjects as! [DataSnapshot]
    for post in allPosts {
        let itemCount = post.childSnapshot(forPath: "itemCount").value as? String ?? "No Count"
        print(itemCount)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...