当前位置: 首页 > 知识库问答 >
问题:

如何在Firebase实时数据库(Android开发)中获取特定子级的键值?

和飞翔
2023-03-14

如何在Firebase实时数据库(Android开发)中获取特定子级的键值?我想根据所选主题获取特定键的值。假设如果用户选择java,那么我想得到“-MnLZAaa1pmVpRusEG8s”(在蓝色框中)。我试图获取列表中的主题名称和主题唯一键,然后将其与用户选择的字符串进行比较,但不知道为什么会得到空值。我怎么做?

public String getSubjectUuid() {
    List<String> subjectNamesList = new ArrayList<>();
    List<String> subjectUuidList = new ArrayList<>();

    DatabaseReference addedSubjectReference = FirebaseDatabase
            .getInstance()
            .getReference(classCreatorPhoneNo + "/" + "class_list" + "/" + classUuid + "/" + "added_subject");

    addedSubjectReference
            .addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
                    if (snapshot.exists()) {
                        subjectNamesList.add(snapshot.child("subject_name").getValue(String.class));
                        subjectUuidList.add(snapshot.child("subject_uuid").getValue(String.class));
                    }
                }

                @Override
                public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
                }

                @Override
                public void onChildRemoved(@NonNull DataSnapshot snapshot) {
                }

                @Override
                public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
                }

                @Override
                public void onCancelled(@NonNull DatabaseError error) {
                }
            });

    for (int i = 0; i < subjectNamesList.size(); i++) {
        if (selectedSubject.equals(subjectNamesList.get(i))) {
            classKey = subjectUuidList.get(i);
            break;
        }
    }
    
    return classKey;
}

暂时还没有答案

 类似资料:
  • 我正试图从我已经创建的firebase数据库中获得一个特定的值。我关注了这个youtube教程和另一个类似的问题,这与我试图实现的目标相当相关。 这就是我的Firebase数据库看起来像数据库树的样子 以下是我到目前为止所尝试的。现在我只尝试获得名称项 在Oncreate方法中: PlumberList类 应用程序几秒钟后崩溃。以下是错误logcat的外观 我是android编码的新手,所以我可能

  • 我从一个开发人员那里得到了一个基于Firabase Realtime DB的Ionic应用程序的代码。当尝试启动应用程序时,im会收到此错误消息。 [ng]src/app/data-service.service.ts(14,36)中出现错误:错误TS2339:类型“{apikey:String;authDomain:String;databaseUrl:String;ProjectId:Stri

  • 我需要在某个时间读取firebase数据库中的一个值。另外,即使数据库voteValue在以后的某个时候发生了变化,我也不希望读取值被更新。不过,如果它更容易,我想我会去它。 我的firebase数据库中有许多时隙--它们碰巧是以秒为单位的时间。我已经调用了这些时隙,我在每个时隙都有一个投票值。 所以在下面的例子中,假设时间是@11seconds。我想读到那个时段的投票值是8

  • 我想从Firebase实时数据库中获取整个JSON数组。从实时数据库中提取数组并将其存储在自定义类的ArrayList中。

  • 问题内容: 我正在研究Firebase项目,我在其中将用户信息存储在表中。现在,我的要求是在表中显示所有用户。这是我的数据库快照 我可以使用从数据库中获取所有用户 上面的代码向我返回了包含bod,电子邮件,姓名,性别的用户数组。但是我只想获取电子邮件和用户名。 有没有一种方法只能从数据库中获取指定的字段? 问题答案: 读取节点时,必须检索其全部内容。因此,无法从读取路径时返回的数据中仅获取 特定

  • 我正在寻找一种方法,以数组[]或字符串等格式从Firebase实时数据库获取数据。 我的数据库如下所示:链接到数据库的图像 或者: