将单个子项添加到firebase数据库并显示在listVIew - android中

时间:2017-05-19 06:00:09

标签: android listview firebase firebase-realtime-database

我有一个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。

enter image description here

帮我看一下ListView中AreaList节点的子节点。

3 个答案:

答案 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);
              }