【发布时间】:2019-04-01 14:44:50
【问题描述】:
我能够从 Firebase 中检索数据,但只能从 android 中的数据库中检索单个用户。
我只想从数据库中获取所有用户在 firebase 中输入的所有列的数据,而无需用户身份验证登录。
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);
}
}
这是我的用户信息类:
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;
}
}
这是我的数据库:
我只是在列表视图中获得 WjGb6At3hRdvOBBFysv65XG37k53 用户
【问题讨论】:
-
mAuth.signInAnonymously()?或者您可以更改数据库规则。
-
您在运行这段代码时遇到了什么问题?它不运行吗?它会运行,但随后会发生与您预期不同的事情吗?您的 logcat 中是否有任何相关消息?
-
因为我的数据库中有两个用户 uid,并且都有包含一些详细信息的字段,但是当我尝试检索两个用户 uid 详细信息时,只检索到一个用户数据
标签: android firebase-realtime-database