Есть ли способ проверить формат значения поля и выполнить операции в коллекциях firebase? - PullRequest
0 голосов
/ 13 июля 2020

Фон:

В настоящее время я получаю все документы в коллекции с помощью запроса и отображаю их по порядку, сортируя их по значению поля ( timestamp ) в документе.

Проблема:

В моей коллекции базы данных firebase для значения поля, которое я использую как параметр сортировки, некоторые в формате строка , а некоторые в формате число . - Следовательно, это возвращает ошибку, поскольку вы не можете сравнивать числа и строку.

Example of the field-val:

Field Value in Document 1(timestamp): "12345654"

Field Value in Document 2(timestamp): 234234234

[Я понимаю, что это должно быть исправлено в самой базе данных, но есть ли способ сделать это?]

Вопрос:

Есть ли способ отсортировать только единицы в числовом формате и показать их отдельно? Как запрос, который выбирает документ с число в качестве формата значения поля и отображает их в отсортированном порядке?

Текущая реализация:

safeID = UserDefaults.standard.value(forKey: "safeIDs") as? String ?? ""
        self.listener = self.firebaseDatabase.collection("notifications").whereField("safeID", isEqualTo: safeID).order(by: "timestamp", descending: true).addSnapshotListener { snapshot, error in
                UIView.transition(with: self.notificationsTableView, duration: 0.3, options: .transitionCrossDissolve, animations: {
                  self.notificationsTableView.isHidden = true
                  self.loadingIndicator.startAnimating()
                }, completion: nil)
                DispatchQueue.main.async {
                  guard let documentSnapshot = snapshot else {
                    print("Error getting documents: \(error!)")
                    return
                  }
                  self.notifications = documentSnapshot.documents
                  UIView.transition(with: self.notificationsTableView, duration: 0.3, options: .transitionCrossDissolve, animations: {
                    self.loadingIndicator.stopAnimating()
                    self.notificationsTableView.isHidden = false
                  }, completion: nil)
                  self.notificationsTableView.reloadData()
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...