如何在不更改数据的情况下从 firebase 检索数据?

// 这是 MainActivity,我使用 firebase 存储示例数据,我可以在其中更新和检索。但是只有在数据发生变化时才能检索数据,但我想看看我已经在firebase 中的数据这里是数据库结构] 1


public class MainActivity extends 

 AppCompatActivity {

EditText name,weight;

Button uploadBtn;

TextView itemName,itemWeight;

DatabaseReference databaseReference=FirebaseDatabase.getInstance().getReference();

Map<String,String>values=new HashMap<>();

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    name=findViewById(R.id.inputItemName);

    weight=findViewById(R.id.inputItemWeight);

    uploadBtn=findViewById(R.id.uploadButton);

    itemName=findViewById(R.id.resultName);

    itemWeight=findViewById(R.id.resultWeight);

// 这里你可以看到我在上传新值之前使用了一个 ValueEventListener 来显示从数据库中检索的值但是它不起作用,除非数据的值被改变(也就是说它只有在上传新值之后才起作用)。


 ValueEventListener valueEventListener=new ValueEventListener() {

        @Override

        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            String nameD=(String) dataSnapshot.child("Name").getValue();

            String weightD = (String) dataSnapshot.child("Weight").getValue();

            itemName.setText(nameD);

            itemWeight.setText(weightD+" Kg");

        }


        @Override

        public void onCancelled(@NonNull DatabaseError databaseError) {


        }

    };

    databaseReference.addListenerForSingleValueEvent(valueEventListener);

    uploadBtn.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            values.put("Name",name.getText().toString());

            values.put("Weight",weight.getText().toString());

            databaseReference.child("UToouch").setValue(values);


        }

 

FFIVE
浏览 91回答 1
1回答

万千封印

为了能够获取您Name和Weight属性的值,请使用以下代码:DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();DatabaseReference ref = rootRef.child("UToouch");ValueEventListener valueEventListener = new ValueEventListener() {&nbsp; &nbsp; @Override&nbsp; &nbsp; public void onDataChange(DataSnapshot dataSnapshot) {&nbsp; &nbsp; &nbsp; &nbsp; String name = dataSnapshot.child("Name").getValue(String.class);&nbsp; &nbsp; &nbsp; &nbsp; String weight = dataSnapshot.child("Weight").getValue(String.class);&nbsp; &nbsp; &nbsp; &nbsp; Log.d(TAG, name + " / " + weight);&nbsp; &nbsp; }&nbsp; &nbsp; @Override&nbsp; &nbsp; public void onCancelled(@NonNull DatabaseError databaseError) {&nbsp; &nbsp; &nbsp; &nbsp; Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!&nbsp; &nbsp; }};ref.addListenerForSingleValueEvent(valueEventListener);您的 logcat 中的输出将是:rittesh / pv
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java