有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取保存在用户ID中的数据?

数据保存正确,如下图所示:

enter image description here

我使用以下代码:

btnDatos.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String name = nameTextView.getText().toString();
            String email = emailTextView.getText().toString();
            String id = idTextView.getText().toString();
            String idJuego = idffTextView.getText().toString();


            Map hopperUdates = new HashMap();
            hopperUdates.put("name", name);
            hopperUdates.put("email", email);
            hopperUdates.put("id", id);
            hopperUdates.put("idFreeFire", idJuego);

            mDatabase.child("Usuario").child(mAuth.getCurrentUser().getUid()).updateChildren(hopperUdates);
    }
});

为了获取数据,我使用以下代码: mDatabase。儿童(“Usuario”)。子(mAuth.getCurrentUser()。getUid())。addValueEventListener(新的ValueEventListener(){ @凌驾 public void onDataChange(@NonNull DataSnapshot DataSnapshot){

            int idJuego = dataSnapshot.getValue(Integer.class);
            idffTextView.setText(idJuego);


        }

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

        }
    });

但它不显示数据,当我在设备上测试时,应用程序关闭。会有什么错误


共 (2) 个答案

  1. # 1 楼答案

    由于您正在将uid保存为用户对象的键,同时作为用户对象内的属性,要将该id设置为idffTextView,请使用以下代码行之一:

    String idJuego = dataSnapshot.getkey();
    idffTextView.setText(idJuego);
    

    或者:

    String idJuego = dataSnapshot.child("id").getValue(String.class)
    idffTextView.setText(idJuego);
    

    请注意,在这两种情况下id都是String型和非{}

  2. # 2 楼答案

    如果需要所有数据,请创建模型类,然后像这样将datasnapshot存储到该模型类中

    模型=数据快照。getValue(Model.class)

    或者你想要一个数据,然后像这样得到孩子

    字符串idJuego=dataSnapshot。child(“childname”)。getValue()。toString

    然后将该字符串设置为textView