Android 如何在firebase中获取childs的唯一密钥

Android 如何在firebase中获取childs的唯一密钥,android,firebase,firebase-realtime-database,arraylist,Android,Firebase,Firebase Realtime Database,Arraylist,我是Firebase的新手 所以我有一个场景,我必须设置一个检查,如果一家酒店已经存在于FavoriteHotels节点中,那么这必须确保该酒店已经存在于FavoriteHotels节点中,否则只需存储单击的酒店。就像这个代码 final String favHotel_Id = myRef.push().getKey(); myRef.child("Users").child(mUser.getUid())

我是Firebase的新手 所以我有一个场景,我必须设置一个检查,如果一家酒店已经存在于FavoriteHotels节点中,那么这必须确保该酒店已经存在于FavoriteHotels节点中,否则只需存储单击的酒店。就像这个代码

final String favHotel_Id = myRef.push().getKey();
                            myRef.child("Users").child(mUser.getUid())
                                    .addListenerForSingleValueEvent(new ValueEventListener() {
                                        @Override
                                        public void onDataChange(@NonNull DataSnapshot snapshot) {
                                            for (DataSnapshot userSnapshot : snapshot.getChildren()) {
                                                if (!userSnapshot.child("FavouriteHotels").exists()){
                                                    Log.d(TAG, "onDataChange: "+userSnapshot.getChildren());
                                                    if (Objects.equals(hotelArrayList.get(position).getHotelName(), userSnapshot.child("Name").getValue() )) {
                                                        Toast.makeText(mContext, "Already saved to favourite hotels", Toast.LENGTH_SHORT).show();
                                                    } else {
                                                        if (favHotel_Id != null) {
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("Name").setValue(hotelArrayList.get(position).getHotelName());
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("Image").setValue(hotelArrayList.get(position).getImageID());
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("rating").setValue(hotelArrayList.get(position).getHotelRating());
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("Price").setValue(hotelArrayList.get(position).getHotelPrice());
                                                        }
                                                    }
                                                }else {
                                                    Toast.makeText(mContext, "No Data Found", Toast.LENGTH_SHORT).show();
                                                }
                                            }
                                        }

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

                                        }
                                    });
我想说的一件事是,我正在从ArrayList中保存这个酒店项目及其属性,我从ArrayList中得到了它

if (Objects.equals(hotelArrayList.get(position).getHotelName(), userSnapshot.child("Name").getValue() )) {
                                                        Toast.makeText(mContext, "Already saved to favourite hotels", Toast.LENGTH_SHORT).show();
                                                    } else {
                                                        if (favHotel_Id != null) {
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("Name").setValue(hotelArrayList.get(position).getHotelName());
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("Image").setValue(hotelArrayList.get(position).getImageID());
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("rating").setValue(hotelArrayList.get(position).getHotelRating());
                                                            myRef.child("Users").child(mUser.getUid()).child("FavouriteHotels").child(favHotel_Id).child("Price").setValue(hotelArrayList.get(position).getHotelPrice());
                                                        }
                                                    }
我想获取在圆圈中突出显示的酒店的唯一键,并检查酒店名称,如果
hotelArrayList.get(position).getHotelName(),userSnapshot.child(“Name”).getValue()
,然后向我敬酒,表明该酒店已经存在于数据库中


您可以像这样获得按键

Query query = FirebaseDatabase.getInstance().getReference("your node path");
 query.addListenerForSingleValueEvent(new ValueEventListener() {
   @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
    for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
        String key = snapshot.getKey();
        Log.i(TAG,key);
    }
}