gpt4 book ai didi

android - 从 firebase 获取所有 child (用户)但向一个 child (用户)显示按钮?

转载 作者:行者123 更新时间:2023-11-29 18:35:09 28 4
gpt4 key购买 nike

enter image description here我只想向所有用户中的一个用户显示一个按钮。我尝试了 orderByKey() 但没有成功!

用户模型有 id 成员,我尝试使用 orderByChild("id") 但结果相同!

我什至尝试了以下技巧!

int times=0; //class varaible

usersListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot ds, String ss) {
OnlineUser ou = ds.getValue(OnlineUser.class);
if (ou == null) return;
if (times == 0 && myId.equals(ou.id)) {
times++;
button.setVisibility(View.VISIBLE);
}
}
//rest of the code

例如:如果子(用户)列表包含 4 个成员,我想只向一个人或第一个插入数据的人显示按钮。我不想在用户模型中使用时间戳节点。

最佳答案

最初(在 xml 中)通过将按钮可见性设置为“消失”然后实现如下代码:

int times=0; //class varaible

usersListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot ds, String ss) {
OnlineUser ou = ds.getValue(OnlineUser.class);
if (ou == null) return;
if (times == 0 && myId.equals(ou.id)) {
times++;
button.setVisibility(View.VISIBLE);
}
}

将无法仅向第一个用户显示按钮。相反,该按钮将对所有用户可见,因为现在该按钮的可见性属性已设置为可见。因此,它对每个子元素/用户都是可见的。

您无法再次将可见性重置为消失。所以我建议遵循您的代码:

int times=0; //class varaible

usersListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot ds, String ss) {
OnlineUser ou = ds.getValue(OnlineUser.class);
if (ou == null) return;
if (times == 0 && myId.equals(ou.id)) {
times++;
button.setVisibility(View.VISIBLE);
} else {
button.setVisibility(View.GONE);
}
}
//rest of the code

关于android - 从 firebase 获取所有 child (用户)但向一个 child (用户)显示按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54683287/

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