在钥匙火箱中获取钥匙



i有 customers 在我的firebase数据库中存储在以下格式的数据。

{
  "fEYfwd8p9oSGAF6iUtXDLkMBCqc2" : { //user id
    "-KdLAGG-8VOMd62Noyc8" : { //customer id
      "customerCode" : "shi",
      "customerLimit" : "2569",
      "customerName" : "Shishir"
    },
    "-KdOraGISFJ6epjWucfh" : { //customer id
      //other cust details
    }
  },
  "jxW41BgSNWdRPyWtUkZA2G0eLhf2" : { //user id
    "-KdCgJKh6_Rb8MOi-fIj" : {
      "customerCode" : "Kau",
      "customerLimit" : "800",
      "customerName" : "Kaushik"
    },
    "-KdCgacTYBkThnVWe4sb" : {
      //other cust details
    },
    "-KdCggxld52mq0DsGRjH" : {
      //other cust details
    },
    "-KdChbdoV7nxwZoGLWsY" : {
      //other cust details
    }
  }
}

在我的Android应用程序中,试图检查客户代码是否在为客户创建其他详细信息之前是否存在。

DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference("customers")
                       .child(FirebaseAuth.getInstance().getCurrentUser().getUid());
dbRef.orderByChild("customerCode").equalTo(code).addListenerForSingleValueEvent(new ValueEventListener() {
       @Override
       public void onDataChange(DataSnapshot snapshot) {
           if (!snapshot.exists()) {
               editTextAC.setText("");
               editTextAC.setError("Customer code not found in database.");
           } else {
               //need to get customer id here.
           }
       }
       @Override
       public void onCancelled(DatabaseError dbError) {
            Toast.makeText(activity, dbError.getMessage(), Toast.LENGTH_SHORT).show();
       }
});

我以低于格式的快照获取数据。

{
    key = jxW41BgSNWasdsaRPsdyaWtUkZA2G0eLhf2,
    value = {-KdChbdoV7nfdasxwZoGLWsY = {
                customerCode = Ses,
                customerLimit = 78888,
                customerName = Sheshu
            }
    }
}

我需要从上面的value获取客户ID。我尝试执行snapshot.getKey()检索第一级keyjxW41BgSNWasdsaRPsdyaWtUkZA2G0eLhf2,而当我说snapshot.getValue()时,将value检索为字符串。我将如何从上方获取客户ID?

for (DataSnapshot child : snapshot.getChildren()) {
    Log.i("TAG", "child key = " + child.getKey());
}
DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference("customers")
                   .child(FirebaseAuth.getInstance().getCurrentUser().getUid());dbRef.orderByChild("customerCode").equalTo(code).addListenerForSingleValueEvent(new ValueEventListener() {
   @Override
   public void onDataChange(DataSnapshot snapshot) {
       if (!snapshot.exists()) {
           editTextAC.setText("");
           editTextAC.setError("Customer code not found in database.");
       } else {
             for (DataSnapshot child : snapshot.getChildren()) {
               Log.e("Customer_id",child.getKey());}
       }
   }
   @Override
   public void onCancelled(DatabaseError dbError) {
        Toast.makeText(activity, dbError.getMessage(), Toast.LENGTH_SHORT).show();
   }});

最新更新