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

firebase实时数据库到列表视图?

卫高谊
2023-03-14

有没有办法将所有子节点检索到textView?,我想创建一个用户日志,您可以在其中跟踪用户进行了何种交易,但我不知道如何获取节点及其子节点列表。

目前为止的代码:

database = FirebaseDatabase.getInstance();
    String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
    reference = FirebaseDatabase.getInstance().getReference().child("Users").child(uid).child("Logs");
btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            reference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot datasnapshot) {
                    String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
                    String logs = datasnapshot.child(uid).child("Logs").getValue().toString();

                    tv1.setText(logs);
                }

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

                }
            });

共有1个答案

滕无尘
2023-03-14

您将ValueEventListener附加到数据库中的路径/User/$uid/Logs,因此onDataChange中的datasnapshot包含该节点的信息及其下的任何数据。

当您尝试从该数据快照中获取datasnapshot.child(uid). child("Logs")的值时,datasnapshot中没有子$uid/Logs,因此该值将为null

要获取所有日志的值,您可以

datasnapshot.getValue()

这将返回一个Map

或者,您可以按日期循环所有日志,然后按时间循环,并打印每个日志的日期属性值,如下所示:

reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot datasnapshot) {
        for (DataSnapshot daySnapshot: datasnapshot.getChildren()) {
            Log.d("Firebase", dateSnapshot.getKey());
            for (DataSnapshot timeSnapshot: daySnapshot.getChildren()) {
                Log.d("Firebase", timeSnapshot.getKey());
                Log.d("Firebase", timeSnapshot.child("Date").getValue(String.class));
            }
        }
    }
    ...

要了解如何在列表视图或回收器视图中显示此内容,我建议搜索:https://www.google.com/search?q=how在列表视图中显示firebase中的数据

 类似资料:
  • 我需要将数据从Firebase实时数据库切换到Firestore DB。我该怎么做? 视频主要关注实时db,但我认为由于我没有激活实时db,它会转到Firestore。但我让它工作的唯一方法是启用实时db。所以我可以在Firebase中插入和读取数据,但我需要它在Firestore中。 任何帮助都是非常感激的。

  • 我正在为具有许多嵌套行的json数据库寻找将Firebase实时数据库数据迁移到云Firestore的最佳方法。示例: 我没有找到任何可以帮助我的东西。我需要迁移的是Cloud FireStore的新离线功能。我正在使用Ionic3(角度5)

  • 我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire

  • 我正在寻找最好的方法来迁移我的应用程序数据库,它使用firebase实时数据库到新的云Firestore数据库。对于我正在进行的项目,我确信我不需要做任何数据模式的更改,所以我几乎只是尝试1-1映射它。Firebase在他们的网站上建议只编写一个脚本来实现这一点,但我不确定最好的方法。有没有人已经做了一个脚本来完成这件事?

  • 所以我正在制作约会应用程序,现在我需要为用户创建一个匹配的人员列表。 因此,我需要一个firebase查询来查看性别,并检查是否已经匹配,如果匹配,则不应将其包括在列表中。 我试着按性别过滤数据。如何编辑此查询以检查它们是否已匹配?匹配项显示在用户/{userID}/Matches/{matchedUserID}中 这是我尝试的: