【发布时间】:2019-01-02 06:53:46
【问题描述】:
参考文献是:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
DatabaseReference TUidRef = usersRef.child(td);
td 的值是从之前的活动推导出来的:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final String dataName = parent.getItemAtPosition(position).toString();
usersdRef.orderByChild("username").equalTo(dataName).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
String dataUID = data.child("uid").getValue(String.class);
Log.i("uid",dataUID);
startActivity(new Intent(Main2Activity.this, Main5Activity.class).putExtra("valueName", dataName).putExtra("valueUID",dataUID));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
Bundle bundle = getIntent().getExtras();
td = bundle.getString("valueUID");
childEventListener 可与 usersRef 一起使用,但不能与 TUidRef 一起使用,它不会崩溃或任何事情,只是什么都不做。
【问题讨论】:
-
你应该将值传递给其他活动,然后接收它
intent.putExtra("valueUID",dataUID); -
@PeterHaddad 我已经使用
putExtra()传递了值,并显示了接收值的代码,但侦听器无法正常工作。我不知道为什么。 -
我昨天回答了一个非常类似的问题。见stackoverflow.com/questions/52116824/…。如果该问题来自您,但我的回答不清楚,请评论该问题。如果这个问题不是你提出的,那肯定是重复的。
-
@PradyumanDixit 哦没看到,我的错
-
@FrankvanPuffelen 我不知道这个问题,但你能告诉我
childEventListener不起作用的原因吗?
标签: android firebase firebase-realtime-database event-listener