发布添加相关Firebase记录的问题

时间:2018-03-31 20:38:38

标签: java android firebase firebase-realtime-database

要提供上下文 - 我已在我的应用程序中成功实施,允许我将tenants添加到properties。但是,在我添加tenant时,它会出现在我在应用程序中显示的所有属性记录中。

我想知道在添加propertyID时是否有可能与propertiestenantID中的每个tenants相关联。这样做的结果只是添加到特定属性的租户只能在该属性上查看(而不是现在的所有属性)。

希望这是有道理的,为任何含糊不清道歉。

以下是我的一些代码以进一步澄清(代码转储道歉):

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_tenants);

        mAuth = FirebaseAuth.getInstance();
        FirebaseUser user = mAuth.getCurrentUser();
        String uid = user.getUid();
        databaseTenants = FirebaseDatabase.getInstance().getReference("tenants");
        databaseTenantsList = FirebaseDatabase.getInstance().getReference("tenants").child(uid);

        textViewPropertyName = (TextView) findViewById(R.id.textViewPropertyName);
        editTextTenantsName = (EditText) findViewById(R.id.editTextTenantsName);
        seekBarAge = (SeekBar) findViewById(R.id.seekBarAge);

        buttonAddTenant = (Button) findViewById(R.id.buttonAddTenant);

        listViewTenants = (ListView) findViewById(R.id.listViewTenants);

        Intent intent = getIntent();

        tenants = new ArrayList<>();

        String id = intent.getStringExtra(PropertyActivity.PROPERTY_ID);
        String name = intent.getStringExtra(PropertyActivity.PROPERTY_NAME);

        textViewPropertyName.setText(name);

        buttonAddTenant.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                saveTenant();
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();

        databaseTenantsList.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                tenants.clear();

                for(DataSnapshot tenantSnapshot : dataSnapshot.getChildren()){
                    Tenant tenant = tenantSnapshot.getValue(Tenant.class);

                    tenants.add(tenant);
                }

                TenantList tenantListAdapter = new TenantList(AddTenantsActivity.this, tenants);
                listViewTenants.setAdapter(tenantListAdapter);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }

    private void saveTenant() {

        String tenantName = editTextTenantsName.getText().toString().trim();
        int age = seekBarAge.getProgress();

        if(!TextUtils.isEmpty(tenantName)){

            String id = databaseTenants.push().getKey();

            Tenant tenant = new Tenant(id, tenantName, age);

            FirebaseUser user = mAuth.getCurrentUser();
            String uid = user.getUid();

            databaseTenants.child(uid).child(id).setValue(tenant);

            Toast.makeText(this, "Tenant saved successfully", Toast.LENGTH_LONG).show();

        } else {

            Toast.makeText(this, "Tenant name should not be empty", Toast.LENGTH_LONG).show();
        }
    }
}

这里显示的是我的数据结构:

Data Structure

0 个答案:

没有答案