【问题标题】:How to show only a child with a specific value in it by filtering data from firebase?如何通过过滤来自firebase的数据仅显示具有特定值的孩子?
【发布时间】:2017-12-12 02:06:27
【问题描述】:
我是 Android 开发领域的新手。我现在正在使用 Firebase。
我有一个 recyclerview 显示每个报价及其数据。现在我想要另一个只显示用户创建的优惠的回收站视图。我已经将用户 ID 添加到报价中。但我不知道如何只显示当前登录用户的 userId 的订单。
我也找不到合适的 Firebase 指南。
【问题讨论】:
标签:
android
firebase
firebase-realtime-database
android-recyclerview
【解决方案1】:
像这样简单查询您的数据。
DatabaseReference mFirebaseDatabaseReference = FirebaseDatabase.getInstance().getReference();
Query query = mFirebaseDatabaseReference.child("Offer").orderByChild("userID").equalTo("user id you want to fetch");
query.addValueEventListener(valueEventListener);
ValueEventListener valueEventListener = new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
for (DataSnapshot postSnapshot : dataSnapshot.getChildren())
{
//TODO get the data here
}
}
@Override
public void onCancelled(DatabaseError databaseError)
{
}
};
【解决方案2】:
您始终可以自定义您的 recyclerview 适配器。或者有 2 个不同的适配器,每个用于一般优惠,一个由用户创建。加载时,您可以创建两个列表并使用适当的适配器来呈现优惠。