получение данных из firebase с помощью swiftui
Есть модель, функция для загрузки данных и модель для идентификации данных, также есть модель для получения данных.
Возникает ошибка, нет документа или нет коллекции. При добавлении уже имеющихся коллекции и документа все работает, помогите пожалуйста разобраться, где ошибка. Хочу сделать отзывы, запись работает, а чтение отзывов нет.
Функция для записи данных в firebase:
func setStarts_review(order: Starts_review, completion: @escaping(Result<Starts_review, Error>) -> ()) {
usersRefStartsReview.document(order.title).collection(order.userID).document(order.id).setData(order.representation) {
error in if let error = error {
completion(.failure(error))
} else {
completion(.success(order))
}
}
}
Модель для идентификации записываемых данных:
struct Starts_review: Identifiable {
var id: String
var userID: String
var date: Date
var starts_review: Int
var review: String
var title: String
var city: String
var representation: [String: Any]{
var repres = [String: Any]()
repres["starts_review"] = self.starts_review
repres["review"] = self.review
repres["userID"] = userID
repres["date"] = Timestamp(date: date)
repres["id"] = self.id
repres["nameStart"] = self.title
repres["StartCity"] = self.city
return repres
}
}
Модель для получения данных из firebase:
import SwiftUI
import Firebase
class getDataReviewStarts : ObservableObject{
@Published var datasReview = [Starts_review]()
private var ViewModelNewReg: Starts_review {
return Starts_review(id: "", userID: AuthService.shared.currentUser!.uid, date: Date(), starts_review: 0, review: "", title: "", city: "")
}
@Published var ViewModelNewRegReview = Starts_review(id: "", userID: AuthService.shared.currentUser!.uid, date: Date(), starts_review: 0, review: "gdgdfghfh", title: "", city: "")
@Published var reviewStarts: Starts_review
init(reviewStarts: Starts_review) {
self.reviewStarts = reviewStarts
let db = Firestore.firestore()
db.collection("Starts_Review").document(ViewModelNewReg.title).collection(ViewModelNewReg.userID).getDocuments { (snap, err) in
if err != nil{
print((err?.localizedDescription)!)
return
}
for i in snap!.documents{
let id = i.documentID
let titleReview = i.get("nameStart") as! String
let cityReview = i.get("StartCity") as! String
let userIDReview = AuthService.shared.currentUser!.uid
let starts_review_Review = i.get("starts_review") as! Int
let review_Review = i.get("review") as! String
self.datasReview.append(Starts_review(id: id, userID: userIDReview, date: Date(), starts_review: starts_review_Review, review: review_Review, title: titleReview, city: cityReview))
}
}
}
}
Пробовал сделать статические данные, они работают, динамика не работает.