我当前的应用程序需要客户的详细信息,发送他们到一个实时的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) {
}
});
}
}
如果这有帮助,这是我的客户信息活动的图像,它使用列表视图来显示数据库中的所有数据,我想知道是否可以通过我的应用程序更新每个用户的特定信息,例如,如果客户报价更改,或联系电话号码更改
发布于 2019-07-08 22:26:14
为了更新数据库中的特定节点,您需要知道标识该节点的信息。当存储通常是用户的UID的用户数据时。但是,如果您没有使用Firebase身份验证,它可以是标识您想要更新其节点的用户的任何其他内容。
除了知道路径之外,您还必须具有更新节点的权限。这就是为什么您经常看到使用Firebase身份验证的UID的原因,因为它允许根据用户是谁来保护对数据的访问。如果你没有使用Firebase身份验证,你必须想出一个不同的方案来保护你的数据。
https://stackoverflow.com/questions/56936259
复制相似问题