【发布时间】:2019-06-05 00:53:39
【问题描述】:
我正在尝试从数据库中检索数据并将其显示在活动中。数据是从数据库中检索到的,其父级对应于先前单击的 RecyclerView 的位置。使用ValueEventListener检索数据时,显示变量为空。
我正在使用意图将 RecyclerView 的位置发送到其他活动,以便它能够从单击的 RecyclerView 的子项中检索数据。
public void changeData(){
final Intent intent = getIntent();
Log.v("Locationsdsa", intent.getStringExtra("EXTRA_LOCATION"));
Log.v("LocationsdsaLOLOL", intent.getStringExtra("EXTRA_POSITION"));
DatabaseReference db = FirebaseDatabase.getInstance().getReference("Data");
db.child(intent.getStringExtra("EXTRA_LOCATION")).child(intent.getStringExtra("EXTRA_POSITION")).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
placeName = dataSnapshot.child("nameResto").getValue(String.class);
String restoAddress = dataSnapshot.child("restoAddress").getValue(String.class);
String restoReview = dataSnapshot.child("restoReviews").getValue(String.class);
String imgUrl = dataSnapshot.child("restoThumbnail").getValue(String.class);
langitude = dataSnapshot.child("restoLangitude").getValue(Double.class);
longitude = dataSnapshot.child("restoLongitude").getValue(Double.class);
Log.v("langitude", String.valueOf(langitude));
Log.v("longitude", String.valueOf(longitude));
Log.v("name", placeName);
Log.v("restoaddress", restoAddress);
Log.v("reviewresto", restoReview);
tvPlace.setText(placeName);
tvAddress.setText(restoAddress);
tvRating.setText(restoReview);
Picasso.get().load(imgUrl).resize(200, 200).centerInside().into(ivPlace);
}
我希望可以使用 ValueEventListener 检索数据
【问题讨论】:
-
如果你尝试硬编码孩子的名字,它会起作用吗?
-
你的 Firebase 规则怎么样,你能展示一下吗?
-
@AlexMamo 感谢您的回答,我刚刚尝试过,但没有成功。
-
@Erik 这是我的 Firebase 规则 { "rules": { ".read": true, ".write": true } }
-
@indira 那是
intent.getStringExtra("EXTRA_LOCATION")和intent.getStringExtra("EXTRA_POSITION")的实际值?
标签: java android firebase firebase-realtime-database