gpt4 book ai didi

ios - 如何检查 child 的数据,在 Firebase 的 child 中

转载 作者:可可西里 更新时间:2023-11-01 01:23:31 26 4
gpt4 key购买 nike

标题可能看起来不对,但我正试图弄清楚如何做到这一点。我的数据结构如下所示:

data structure

我想看看每个 channel 是否都有用户。这将用于检查是否有 channel :

channelRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in
for channelSnap in snapshot.children {
let channelData = (channelSnap as! FIRDataSnapshot).value as! Dictionary<String, AnyObject>
if let name = channelData["name"] as! String!, name.characters.count > 0 {
}
})

这当然会检查是否有一个 child 有一个名为 name 的属性,如果有,就做一些事情。我想要做的是在所有 channel 的 child ( channel )中循环遍历 child ( channel 中的用户)。我想检查 channel 中是否有 child channel ,如果没有,请删除该 channel 。那么如何循环遍历channel children中的children呢?我可以通过调用此函数访问每个 channel ID:

让 id = (channelSnap as!FIRDataSnapshot).key

编辑:

这会打印出 No user in channel:

channelRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in
for channelSnap in snapshot.children {
for child in (channelSnap as AnyObject).children {
let usersData = (child as! FIRDataSnapshot).value as? Dictionary<String, AnyObject>
if let randomUser = usersData?["userID"] as! String!{
print("user in the channel")
}
else
{
print("no user in channel")
}
}

编辑 2:

这是 snapshot 的打印,然后是 channelSnap 的打印,其中有一个用户:

SNAPSHOT: Snap (channels) {
"-KePh6YFmQqQ6ZhEfTHn" = {
"-KePh6YHPLSAIEARfj-i" = {
PictureVersion = 2;
readyToGo = 0;
userID = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
username = pietje;
};
creator = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
currentPlayers = 1;
entryFee = 100;
gameType = normal;
maximumPlayers = 4;
name = "random channel";
password = "";
};
}
CHANNELSNAP: Snap (-KePh6YFmQqQ6ZhEfTHn) {
"-KePh6YHPLSAIEARfj-i" = {
PictureVersion = 2;
readyToGo = 0;
userID = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
username = pietje;
};
creator = SZlQ76RLCJQpFa0CDhrgFJoYzrs2;
currentPlayers = 1;
entryFee = 100;
gameType = normal;
maximumPlayers = 4;
name = "random channel";
password = "";
}

最佳答案

users in channel?

KeJTqVREbMEmtD0oAk4 是 channel 内的用户吗?如果是这样,我认为拥有一个关键的 users 会很好,您可以在其中保存有关他们的所有信息...

在下图中,example 键将对应于您的 channel 。在其中,您将拥有 other_info,这将是有关该 channel 的信息。然后是 users,它将保留 channel 中的所有不同用户。

enter image description here

然后 channelSnap.child("users").value 将拥有该 channel 中的所有用户。

您可以检查是否有用户使用类似的东西:

if let dict = channelSnap.child("users").value as? [String: Any] {
if dict.count == 0 {
// no users
} else {
// you got users
}
}

关于ios - 如何检查 child 的数据,在 Firebase 的 child 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42599617/

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