如何更新从没有用户帐户的数据库中获取的列表视图

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (6)

我当前的应用程序获取客户详细信息,将它们发送到实时firebase数据库,切换活动按钮将用户带到客户信息页面,在该页面中显示数据库中的所有数据,我想知道是否可以在不使用身份验证的情况下更新特定用户使用此应用程序而非客户登录为店主。

我发现的所有视频都使用firebase身份验证,允许更新用户详细信息,但我的应用程序列出了所有数据库数据,因为没有特定的登录用户。

下面是我的类,它接收数据库信息并在屏幕上显示

public class CustomerDataRetrieved extends AppCompatActivity {

    private ListView listView;
    DatabaseReference databaseReference;
    Firebase firebase;
    List<CustomerName> customerNameList;
    public static final String Database_Path = "Customer Details";


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


        listView = (ListView) findViewById(R.id.list_view);

        firebase = new Firebase(Firebase_Server_URL);

        databaseReference = FirebaseDatabase.getInstance().getReference(Database_Path);

        customerNameList = new ArrayList<>();



    }

    @Override
    protected void onStart() {
        super.onStart();
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot customerSnapshot : dataSnapshot.getChildren()) {

                    CustomerName customers = customerSnapshot.getValue(CustomerName.class);
                    customerNameList.add(customers);
                }
                CustomerInfoAdapter customerInfoAdapter = new CustomerInfoAdapter(CustomerDataRetrieved.this,customerNameList);
                listView.setAdapter(customerInfoAdapter);

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }
}

如果这有帮助,这是我的客户信息活动的图像,它使用列表视图显示数据库中的所有数据,我想知道是否可以通过我的应用程序更新每个用户的特定信息,例如,如果客户报价变动,或联系电话号码已更改

提问于
用户回答回答于

要更新数据库中的特定节点,您需要知道标识该节点的内容。存储通常是用户的UID的用户数据时。但是,如果您不使用Firebase身份验证,则可以使用其他任何标识要更新其节点的用户。

除了知道路径外,您还必须具有更新节点的权限。这就是您经常看到使用Firebase身份验证的UID的原因,因为它允许根据用户的身份保护对数据的访问。如果您不使用Firebase身份验证,则必须采用不同的方案来保护您的数据。

扫码关注云+社区

领取腾讯云代金券