【问题标题】:Firebase - get random data [duplicate]Firebase - 获取随机数据[重复]
【发布时间】:2021-09-27 09:25:24
【问题描述】:

我有一个 Firebase 查询:

Firestore.firestore().collection("users")
            .whereField("activated", isEqualTo: 1)
            .whereField("gender", isEqualTo: gender == 1 ? 0 : 1)
            .order(by: "createdAt", descending: true)
            .limit(to: 5)
            .getDocuments{(snapshot, error) in
            guard let snap = snapshot else {
                print("error fetching data")
                return
            }
            var users = [User]()
            for document in snap.documents {
                let dict = document.data()
                guard let decodedUser = try? User.init(fromDictionary: dict) else { return }
                if Auth.auth().currentUser!.uid != decodedUser.uid {
                    if decodedUser.profileURL != "" {
                        users.append(decodedUser)
                    }
                }
            }
            self.allUsers = users
            self.showLoadingIndicator = false
        }

firebase 是否允许您带回随机数据。

例如,目前我正在找回 5 个最新用户:

.order(by: "createdAt", descending: true)
.limit(to: 5)

我想带回 20 个用户,然后只显示 20 个中的随机 5 个。

【问题讨论】:

    标签: swift firebase google-cloud-firestore swiftui


    【解决方案1】:

    如果你想获取 20 个文档,那么只需设置 .limit(to: 20),然后使用 Swift 自己选择任意 5 个。 snap.documentsFIRDocumentSnapshots 的数组,因此您可以编写一个随机选择任意 5 个项目然后显示它们的函数。

    结帐Get random elements from array in Swift

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 2021-11-07
      相关资源
      最近更新 更多