Android 跨随机键检索子值-Firebase
我想通过使用随时间推移的随机键来检索更新到Firebase的温度值。我想根据实时数据在应用程序中显示温度值。我尝试使用addValueEventListner,但似乎该值无法实时更改`公共类SecondActivityB扩展了AppCompatActivity{Android 跨随机键检索子值-Firebase,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想通过使用随时间推移的随机键来检索更新到Firebase的温度值。我想根据实时数据在应用程序中显示温度值。我尝试使用addValueEventListner,但似乎该值无法实时更改`公共类SecondActivityB扩展了AppCompatActivity{ private DatabaseReference mDatebase; private TextView mTempView; @Override protected void onCreate(Bundle savedInstan
private DatabaseReference mDatebase;
private TextView mTempView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_b);
mDatebase = FirebaseDatabase.getInstance().getReference().child("Region 1").child("Parameter Reading").child("temperature");
mTempView = (TextView) findViewById(R.id.tempvalue);
mDatebase.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
String name = dataSnapshot.getValue(String.class);
mTempView.setText("Temperature, C: " + name);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});`}
因此,您引用数据的方式是个问题 您的数据位置是: 水培监测系统/区域1/参数读数/KzB1…/温度 读取数据的方式 区域1/参数读数/温度 所以你跳过了孩子(水培监测系统) 你面临的问题 现在,孩子(KzB1..)或(KzB2..)是按键,这意味着你不能引用它们,因为你不知道它们是被按下的 您可能的解决方案是像这样循环遍历孩子: 更改:
mDatebase = FirebaseDatabase.getInstance().getReference().child("Region 1").child("Parameter Reading").child("temperature");
进入这个
mDatebase = FirebaseDatabase.getInstance().getReference().child("hydroponic-monitoring-system").child("Region 1").child("Parameter Reading");
在您的值事件侦听器中,在onDatachange中执行此操作
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
//loop through the keys
for (DataSnapshot datasnap: dataSnapshot.getChildren()){
String name = datasnap.child("temperature").getValue(String.class);
mTempView.setText("Temperature, C: " + name);
}
}
现在,您应该读取每一级按键的温度。很乐意提供帮助,请确保接受,以便其他人知道它是正确的。在更新读数后,是否可以创建另一个文本视图来显示以前的值(温度)?