我有一个firebase项目,我已成功实施了firebase Email身份验证和电子邮件验证。现在在我的firebase数据库中,我需要为每个用户添加数据库区域。
我的代码片段将子项添加到数据库中(如果我以错误的方式执行此操作,请更正我)。
addBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String areaName = areaNameET.getText().toString();
if (areaName.isEmpty()){
toast(getString(R.string.enter_area_name));
} else {
databaseReference.child("users").child(userID).child("AreaList").child(areaName).setValue(areaName);
areaNameET.setText("");
}
}
});
我的数据库的ScreenShot。
帮我看一下ListView中AreaList节点的子节点。
答案 0 :(得分:1)
请使用此代码:
DatabaseReference yoorRef = FirebaseDatabase.getInstance().getReference().child("users").child(userId).child("AreaList");
FirebaseListAdapter<String> firebaseListAdapter = new FirebaseListAdapter<String>(YourActivity.this, String.class, android.R.layout.simple_list_item_1, yourRef) {
@Override
protected void populateView(final View v, final String name, int position) {
TextView textView = (TextView) v.findViewById(R.id.text_view);
textView.setText(name);
}
};
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(firebaseListAdapter);
希望它有所帮助。
答案 1 :(得分:0)
创建一个包含预定义键的PoJo类,如您的场景
姓名,电话,区域等
比将“PoJo”类传递给“AreaList”上的数据库,子项将替换所有细节,如果新键不存在则 它自动添加新的。然后调用方法
addBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String areaName = areaNameET.getText().toString();
if (areaName.isEmpty()){
toast(getString(R.string.enter_area_name));
} else {
databaseReference.child("users").child(userID).child("AreaList").setValue(areaName);
areaNameET.setText("");
}
}
});
答案 2 :(得分:0)
这可能对您有所帮助
mListView = (ListView) findViewById(R.id.listView);
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
DatabaseReference conditionRef = mDatabase.child("users").child(userID).child("AreaList");
final FirebaseListAdapter<String> adapter =
new FirebaseListAdapter<String>(
this,
String.class,
android.R.layout.simple_list_item_1,
mDatabase) {
@Override
protected void populateView(View v, String model, int position) {
TextView text = (TextView) findViewById(android.R.id.text1);
text.setText(model);
}
mListView.setAdapter(adapter);
}