如何从Firebase检索ListView中的数据 [英] How can Retrieve data in ListView from Firebase
本文介绍了如何从Firebase检索ListView中的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您能帮我解决这个问题吗,我尝试在Listview的firebase中显示数据,但不显示任何内容!
Can you help me in this problem, I try to display data from in firebase in Listview, but Not Display anything!
ListView listView;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
ArrayList<String> arrayList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fairbase_list);
firebaseDatabase=FirebaseDatabase.getInstance();
databaseReference= firebaseDatabase.getReference("Users");
listView=(ListView) findViewById(R.id.list);
final ArrayAdapter<String> arrayAdapter= new ArrayAdapter<String>(this ,android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(arrayAdapter);
Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value=dataSnapshot.getValue(String.class);
arrayList.add(value);
arrayAdapter.notifyDataSetChanged();
}
}
推荐答案
public class MainActivity extends AppCompatActivity{
ListView listView;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
ArrayList<String> arrayList = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference("Users");
listView = (ListView) findViewById(R.id.lists);
Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value=dataSnapshot.getValue(String.class);
arrayList.add(value);
arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(arrayAdapter);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}}
此侦听器实际上用于列表,因此它不是来自侦听器的. 另外,由于用户未通过身份验证,因此您需要将数据库中的规则更改为:-
This listener is actually used for lists, so its not from the listener. Also since the user is not authenticated you need to change the rules in your database to :-
{
"rules": {
".read": "true",
".write": "true"
}
}
这篇关于如何从Firebase检索ListView中的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文