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

从Firebase导入数据不会出现在textview中

王彭薄
2023-03-14

来自实时数据库Firebase的数据不会出现在TextView中。我在这里找过类似的问题,但没有解决。如果你能帮我解决这个问题,我将不胜感激。

firebase结构:

  "state" : {
    "open_close" : "open",
    "weight" : 2500
  }

Java代码:

public class SubActivity extends AppCompatActivity {
    TextView tvWeight;
    TextView tvOpen_close;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);

        tvWeight = findViewById(R.id.textView_weight);
        tvOpen_close = findViewById(R.id.textView_open_close);

        final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("state");

        ref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {

                    String value = dataSnapshot.child("open_close").getValue(String.class);
                    int weight = dataSnapshot.child("weight").getValue(int.class);

                    tvWeight.setText(weight);
                    tvOpen_close.setText(value);
                }

            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

    }
}

共有1个答案

浦泳
2023-03-14
String value = snapshot.child("open_close").getValue(String.class);
int weight = snapshot.child("weight").getValue(int.class);

您已经在迭代快照中的子级。您不需要访问父快照来获取子值。使用快照的迭代值并从中获取值。将代码更改为上面。

编辑

此外,如果您没有很多与state相同的节点,那么我就看不到迭代子节点的意义。如果数据库只包含一个节点,作为

`"state" : {
    "open_close" : "open",
    "weight" : 2500
  }`

那么就不要迭代它。直接调用如下:

final DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            
                String value = dataSnapshot.child("state").child("open_close").getValue(String.class);
                int weight = dataSnapshot.child("state").child("weight").getValue(int.class);

                tvWeight.setText(weight);
                tvOpen_close.setText(value);
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
 类似资料:
  • 有人知道如何将数据从GraphenDB导入本地数据库吗?从graphendb.com导出的是一个包含大量文件的zip文件。我不确定如何将它们导入到neo4j的本地实例中。以下是zip文件夹中的一些内容:

  • 导出文件在这里可用,大约200 MB。 http://www.filedropper.com/rxexport1

  • 最近,我构造了我的firebase函数,通过参考另一篇so文章,使目录具有更模块化的方法。 因此,firebase目录结构是 不同模块中的所有文件(除了utils之外)都作为firebase函数单独导出到最上面的index.js中。每个模块的index.js对每个函数进行全局导出。 主要的(最外面的)index.js 现在我想添加另一个模块,但不是该模块的所有功能都需要导出。这些未导出的函数被导入

  • 数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。 数据导出 接口 POST https://cloud.minapp.com/userve/v1/table/:table_id/export/ 其中 table_id 是数据表的 ID 请求参数 参数 类型 必填 说明 file_type String 是 导出文件的格式,支持 csv、json 格式 mode St

  • 数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。 数据导出 接口 POST https://cloud.minapp.com/oserve/v1/table/:table_id/export/ 其中 table_id 是数据表的 ID 请求参数 参数 类型 必填 说明 file_type String 是 导出文件的格式,支持 csv、json 格式 mode St

  • 我试图通过Export Impex脚本从多个表中导出数据,但无法为多个表定义标题。层次结构类似于:OrderTable 有人能建议我如何实现这一点吗?