[英]able to retrieve data from Firebase database in android but for single user only
As I am able to retrieve data from Firebase, but for single user only database in android. 因为我能够从Firebase检索数据,但对于Android中的单用户仅数据库。 I just want to get the data from database which I have inserted in firebase without user authentication login.
我只想从没有经过用户身份验证登录的情况下从插入Firebase的数据库中获取数据。
I am getting error in logcat: 我在logcat中遇到错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
Here is my code: 这是我的代码:
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
public class ViewDatabase extends AppCompatActivity {
private static final String TAG = "ViewDatabase";
private DatabaseReference databaseReference;
private String userID;
private ListView mListView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_database_layout);
mListView = (ListView) findViewById(R.id.listview);
databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
showData(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
private void showData(DataSnapshot dataSnapshot) {
userinfo user = dataSnapshot.getValue(userinfo.class);
Log.d(TAG, "showData: name: " + user.getName());
Log.d(TAG, "showData: Mobile: " + user.getMob());
Log.d(TAG, "showData: Vehicle: " + user.getVehicle());
Log.d(TAG, "showData: Address: " + user.getaddress());
ArrayList < String > array = new ArrayList < > ();
array.add(user.getName());
array.add(user.getMob());
array.add(user.getVehicle());
array.add(user.getaddress());
ArrayAdapter adapter = new
ArrayAdapter(this, android.R.layout.simple_list_item_1, array);
mListView.setAdapter(adapter);
}
}
Here is my userinfo code: 这是我的userinfo代码:
public class userinfo {
public String name;
public String mob;
public String vehicle;
public String address;
public userinfo() {
}
public userinfo(String name, String mob, String vehicle, String address) {
this.name = name;
this.mob = mob;
this.vehicle = vehicle;
this.address = address;
}
public String getName() {
return name;
}
public String getMob() {
return mob;
}
public String getVehicle() {
return vehicle;
}
public String getaddress() {
return address;
}
}
}
Using an iterator you will be able to accomplish this. 使用迭代器,您将能够完成此任务。
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
userinfo user = data.getValue(userinfo.class);
Log.d(TAG, "User name: " + user.getName() + ", mobile: "
+ user.getMob() + ", Vehicle " + user.getVehicle() + ", Address " +
user.getAdd());}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.