我想从addValueEventListener()
接收一个字符串,用于从数据库Firebase转售数据。数据正确到达。从addValueEventListener退回字符串Firebase
但是,如果确定要将字符串从该方法中移出以在另一个方法中使用它,则不会返回任何内容。
你有小费吗?
我已经尝试过putExtras,也有意创建一个方法,但它没有奏效。
final DatabaseReference mPostReference = FirebaseDatabase.getInstance().getReference().child("user-daily").child(getUid()).child("2017-Year");
mPostReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final ArrayList<String> labels = new ArrayList<String>();
for (DataSnapshot data : dataSnapshot.getChildren()){
final DailyItem dailyItem = data.getValue(DailyItem.class);
labels.add(dailyItem.mese);
}
title.setText(labels.get(position));
a = title.getText().toString();
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(view.getContext(),"database error",
Toast.LENGTH_SHORT).show();
}
});
//this return null... why?
String title = a;
谢谢你的回复!但是,这并不能解决我的问题,因为我仍然无法提供此字符串。我会看你离开我的应用程序。谢谢。 – hulon
您试图使异步代码同步。请参阅http://stackoverflow.com/questions/33203379/setting-singleton-property-value-in-firebase-listener/33204705#33204705 –
谢谢理解!我会在稍后给你的链接中查找答案,我感谢你。最后一口井,只是一个猜测。如果我除了在Firebase给定的本地被检测者身上,例如在共享偏好的情况下,那么我可以在方法之外找回它? – hulon