Есть ли способ справиться с ситуациями, когда пользователь заблокировал более 10 пользователей, чтобы приложение не превIOS

Программируем под IOS
Ответить
Anonymous
 Есть ли способ справиться с ситуациями, когда пользователь заблокировал более 10 пользователей, чтобы приложение не прев

Сообщение Anonymous »

Код: Выделить всё

func fetchNextPage() async {
guard !isLoading, !reachedEnd else { return }
isLoading = true
defer { isLoading = false }

let excluded = Array(BlockService.shared.blocked.prefix(10))

var query = db.collection("posts")
.whereField("isReply", isEqualTo: false)
.order(by: "timestamp", descending: true)

if !excluded.isEmpty {
query = query.whereField("ownerUid", notIn: excluded)
}

if let lastDoc { query = query.start(afterDocument: lastDoc) }
query = query.limit(to: pageSize)

do {
let snap = try await query.getDocuments()

guard !snap.documents.isEmpty else {
reachedEnd = true
return
}

let items = snap.documents.compactMap { try? $0.data(as: Post.self) }
let posts = await PostService.hydratePosts(items)

self.posts.append(contentsOf: posts)
lastDoc = snap.documents.last
if snap.documents.count < pageSize { reachedEnd = true }
} catch {
Crashlytics.crashlytics().record(error: error)

#if DEBUG
print("DEBUG: Unable to fetch posts with error: \(error.localizedDescription)")
#endif
}
}
В настоящее время оператор «не вход» в Firestore ограничен 10 значениями, что не позволяет пользователям блокировать более 10 других пользователей. Есть ли эффективный способ обойти это ограничение и поддержать неограниченное количество заблокированных пользователей? Я не хочу фильтровать клиентскую часть. Я хочу сохранить все в виде запроса, чтобы можно было реализовать правила Firestore.

Подробнее здесь: https://stackoverflow.com/questions/797 ... n-10-users
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»