[英]How to display data in RecyclerView with CardView from Android firebase-realtime-database?
[英]How do I show a list of data in android studio based on the presence of a particular value in firebase-realtime-database?
所以我試圖檢索選擇特定值的用戶列表。
這是我在 Firebase 中創建的數據庫。 我正在嘗試打印在“providedServices”節點中選擇“食物”選項的用戶及其地址列表。
我正在遍歷數據庫並嘗試使用 IF 語句來查找選擇該選項的用戶,但是,我被卡住了。 下面是我的代碼片段:
有人可以幫幫我嗎? 順便說一句,我是初學者,所以請對我放輕松:')
以下是 FoodActivity 頁面,其中
public class FoodActivity extends AppCompatActivity {
DatabaseReference databaseDonors;
ListView listViewDonors;
List<Donors> donorsList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food);
listViewDonors = (ListView) findViewById(R.id.listViewDonors);
donorsList = new ArrayList<>();
}
public FoodActivity() {
}
@Override
protected void onStart() {
super.onStart();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference donorsRef = rootRef.child("donors");
Query provideServicesQuery = donorsRef.orderByChild("provideServices").equalTo("Food");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Donors donors = ds.getValue(Donors.class);
donorsList.add(donors);
Log.d("TAG", donors.getDonorName());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage()); //Don't ignore potential errors!
}
};
provideServicesQuery.addListenerForSingleValueEvent(valueEventListener);
}
}
以下是使用的 Donors 類。
public class Donors {
String donorID;
String donorName;
String providedServices;
String donorBusinessName;
String donorAddress;
String donorEmail;
String donorPhone;
public Donors(String donorID, String donorName, String providedServices, String donorBusinessName, String donorAddress, String donorEmail, String donorPhone) {
this.donorID = donorID;
this.donorName = donorName;
this.providedServices = providedServices;
this.donorBusinessName = donorBusinessName;
this.donorAddress = donorAddress;
this.donorEmail = donorEmail;
this.donorPhone = donorPhone;
}
public Donors() {
}
public String getDonorID() {
return donorID;
}
public String getDonorName() {
return donorName;
}
public String getProvidedServices() {
return providedServices;
}
public String getDonorBusinessName() {
return donorBusinessName;
}
public String getDonorAddress() {
return donorAddress;
}
public String getDonorEmail() {
return donorEmail;
}
public String getDonorPhone() {
return donorPhone;
}
}
要僅獲取將provideServices
屬性設置為“Food”的對象,您絕對應該使用以下代碼行中的查詢:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference donorsRef = rootRef.child("donors");
Query provideServicesQuery = donorsRef.orderByChild("provideServices").equalTo("Food");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Donors donors = ds.getValue(Donors.class);
donorsList.add(donors);
Log.d("TAG", donors.getDonorName());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage()); //Don't ignore potential errors!
}
};
provideServicesQuery.addListenerForSingleValueEvent(valueEventListener);
除此之外事實donorsList
將填充Donors
的物體,你還可以看到在logcat中誰擁有的所有捐助者的名字provideServices
屬性設置為“食品”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.