は私が達成したい何firebaseアンドロイドのfirebaseデータベースで選択した値を持つノードのキーUIDを取得するにはどうすればよいですか?以下
Areas
-AreaUID1
-Admin
-Admin1UID
-admin_name:""
-admin_area:""
-admin_email:""
-Admin2UID
-admin_name:""
-admin_area:""
-admin_email:""
.
.
-Events
-EventUid1
-event_name:""
-event_timings:""
-EventUid2
-event_name:""
-event_timings:""
.
.
-Gallery
-ImageUid1
-image_link:""
-AreaUid2
-Admin
-Admin1UID
-admin_name:""
-admin_area:""
-admin_email:""
-Admin2UID
-admin_name:""
-admin_area:""
-admin_email:""
.
.
-Events
-EventUid1
-event_name:""
-event_timings:""
-EventUid2
-event_name:""
-event_timings:""
.
.
-Gallery
-ImageUid1
-image_link:""
の私のデータベースですか?
同じデータベースの助けを借りて利用可能なadmin_areasのリストがあることを考慮して、エリアのAreaUIDを取得したいと思います。ユーザーがリスト内の項目をクリックすると、admin_areaがリストから選択したadmin_areaに一致するノードのAreaUIDを取得します。ここで、例えばについて
) がユーザに提示領域のリストである -
1)エリア1
2)エリア2
3)エリア3
4)エリア4
ユーザーがエリア2をタップすると、AreaUidを取得したいのですが、どうすればいいですか?以下は、あなたのコメントに基づいて基準
mDbRef = FirebaseDatabase.getInstance().getReference().child("Areas");
arr = new ArrayList<>();
listView = (ListView) findViewById(R.id.list_of_areas);
ValueEventListener listener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
String areaUid = snapshot.getKey();
Log.i("AreaUID", areaUid);
showListOfAreas(areaUid);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println(databaseError.toException());
}
};
mDbRef.addValueEventListener(listener);
}
private void showListOfAreas(final String areaUid) {
pd.setTitle("Fetching Registered Areas");
pd.setMessage("Loading Areas...");
pd.show();
DatabaseReference mAreaNameRef = mDbRef.getRef().child(areaUid).child("Admin").child("admin1");
mAreaNameRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final Admin admin = dataSnapshot.getValue(Admin.class);
arr.add(admin.getAdmin_colony());
adapter = new ArrayAdapter<>(ListOfAreasActivity.this,
android.R.layout.simple_list_item_1, android.R.id.text1, arr);
listView.setAdapter(adapter);
pd.dismiss();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String areaName = (String) parent.getItemAtPosition(position);
//findUserIdWithLocation(areaName);
SharedPreferences.Editor editor = getSharedPreferences("shared_prefs", MODE_PRIVATE).edit();
editor.putString("area_name", areaName);
editor.apply();
editor.commit();
Intent intent = new Intent(ListOfAreasActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
「areaUid」を取得したい行を指摘できますか? – Wilik
コメント行は、領域を取得して保存する方法です。 – knightcube