我命令当一个用户添加信息时,他也会将他的uid从另一个用户那里转移过来;当接收到uid时,会将接收到的uid与用户所在文件夹中的uid进行比较,如果匹配,则接收到某个用户的数据(编号、姓名)。用户模型
public class ShopUser {
private String client_shop,numberphone_shop,ShopInfouid;
public ShopUser(){
}
public ShopUser(String client_shop, String numberphone_shop, String shopInfouid) {
this.client_shop = client_shop;
this.numberphone_shop = numberphone_shop;
this.ShopInfouid=shopInfouid;
}
public String getClient_shop() {
return client_shop;
}
public void setClient_shop(String client_shop) {
this.client_shop = client_shop;
}
public String getNumberphone_shop() {
return numberphone_shop;
}
public void setNumberphone_shop(String numberphone_shop) {
this.numberphone_shop = numberphone_shop;
}
public String getShopInfouid() {
return ShopInfouid;
}
public void setShopInfouid(String shopInfouid) {
ShopInfouid = shopInfouid;
}
}
验证方法
ShopInfoRef.orderByChild("ShopInfouid").equalTo(getIntent().getExtras().get("UidShop").toString())
////UidSop это принятый uid переносится из другого активити а ShopInfouid это uid пользователя так называется в бд////
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists() && snapshot.getChildrenCount() > 0) {
phone=snapshot.getValue(ShopUser.class).getNumberphone_shop();
}else {
Toast.makeText(OplataActivity.this, "Данных нет", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
初始化
private String phone;
ShopInfoRef=FirebaseDatabase.getInstance().getReference().child("shop");
我试图检查日志d,但给出了一个错误,即电话字符串具有空值,并试图将此字符串传递给电话打开方法,但所需的号码没有出现在那里,下面是方法
image_phone_shop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent ohoneIntent=new Intent(Intent.ACTION_DIAL);
ohoneIntent.setData(Uri.parse("tel:"+ phone));
startActivity(ohoneIntent);
}
});
下面是users文件夹,其中的用户uid与接受的uid x1c 0d1x进行比较
下面是数据文件夹,uid从其中获取以进行比较
1条答案
按热度按时间uajslkp61#
当您对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也将包含一个结果的列表。
您的
onDataChange
需要通过循环snapshot.getChildren()
来处理此列表:另外:请不要将
onCancelled
留空,因为这样会忽略潜在的错误。至少它应该看起来像这样: