gpt4 book ai didi

ios - 获取随机 Firebase 数据库条目

转载 作者:行者123 更新时间:2023-11-30 13:08:49 26 4
gpt4 key购买 nike

我的数据库中有这样的用户:

users
--45jklj4kljfejlk34 // random uid
----id: 1 // I add this manually when creating a user (maybe it helps getting a random user)
----someData: true
--454jkljkljefnd4lk
----id: 2
----someData: true

我想获得一个随机用户,但我不知道如何做。我尝试过某事。像这样:

let usersCount = DataService.sharedInstance.DB_USER_COUNT
let rand = Double(arc4random_uniform(UInt32(usersCount))) + 1
let userRef = DataService.sharedInstance.DB_REF_USERS.queryOrdered(byChild: "id").queryStarting(atValue: rand).queryLimited(toFirst: 1))

我从数据库中获取 usersCount。在那里,每次添加用户时我都会增加该数字。

但这行不通。如果我打印这个,我会得到以下结果:

(/users {
i = id;
l = 1;
sp = 1;
vf = l;
})

有什么建议吗?我该如何实现这一目标?

最佳答案

因此,由于 Firebase 的工作方式与基于关系的数据库完全不同,为了快速高效,冗余似乎是可以接受的。所以我想出了一个适合我的解决方法。

当我创建一个用户时,我将他添加到“用户”树中。此外,我将他添加到“numUsers”树中(我不擅长选择名称,对此感到抱歉)。看起来像这样:

users
--45jklj4kljfejlk34 // random uid
----id: 1
----someData: true
--454jkljkljefnd4lk
----id: 2
----someData: true

numUsers
--1: 45jklj4kljfejlk34
--2: 454jkljkljefnd4lk

因此,“numUsers”由作为键的 id 和作为值的 uid 组成。每次添加新用户时,我都会获取“usersCount”(之前我将其增加 1)并将其用作键。

这样,我就可以使用以下方法轻松获取随机用户:

DataService.sharedInstance.DB_REF_USERS.child("\(rand)").observeSingleEvent(of: .value, with: {(snapshot) in print(snapshot) })

关于ios - 获取随机 Firebase 数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com