我想从Firebase
检索数据但我的问题是其中一个节点是每天的日期,我不知道如何进入它。
那是我的JSON
:
{
"jsonData": {
"11-30-2017": {
"Clau": {
"-L-BmanPPTqqXxOivGZs": [
{
"cantitate": "18",
"pret": "140",
"produs": "Camasa",
"produsId": "-L-BjnaA-Uizg9mI7J3l",
"qty": 2,
"subTotal": 280
}
]
}
}
}
}
我想在jsonData
( cantitate,pret,produsID等)中获取对象。我不知道怎么进去,这就是我尝试过的。
mDatabaseReference = FirebaseDatabase.getInstance().getReference("jsonData")
我不知道下一步该做什么。
答案 0 :(得分:1)
mDatabaseReference = FirebaseDatabase.getInstance().getReference("jsonData").child("11-30-2017").child("Clau").child("-L-BmanPPTqqXxOivGZs");
mDatabaseReference .addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.wtf(TAG, "onDataChange:Daylog "+dataSnapshot.toString() );
//your data
}
@Override
public void onCancelled(DatabaseError databaseError) {
//error code
}
});
答案 1 :(得分:0)
Firebase API仅允许您使用orderByChild
和equalTo
方法过滤一级深度(或with a known path)的儿童。
您通过this doc阅读了解其工作原理。
答案 2 :(得分:0)
您需要创建dao类以便于管理数据。
$_POST['left']
当你将数据插入firebase然后你得到Unique键L-BmanPPTqqXxOivGZs
@IgnoreExtraProperties
public class Datas {
public String cantitate;
public String pret;
public String produs;
public String produsId;
public String qty;
public Datas() {}
public Datas(String cantitate, String pret, String produs, String produsId, String qty, String subTotal) {
this.cantitate = cantitate;
this.pret = pret;
this.produs = produs;
this.produsId = produsId;
this.qty = qty;
this.subTotal = subTotal;
}
public String subTotal;
public String getCantitate() {
return cantitate;
}
public void setCantitate(String cantitate) {
this.cantitate = cantitate;
}
public String getPret() {
return pret;
}
public void setPret(String pret) {
this.pret = pret;
}
public String getProdus() {
return produs;
}
public void setProdus(String produs) {
this.produs = produs;
}
public String getProdusId() {
return produsId;
}
public void setProdusId(String produsId) {
this.produsId = produsId;
}
public String getQty() {
return qty;
}
public void setQty(String qty) {
this.qty = qty;
}
public String getSubTotal() {
return subTotal;
}
public void setSubTotal(String subTotal) {
this.subTotal = subTotal;
}
}
获取数据后,如下所示存储在适配器中,这是适配器类..
mDatabaseReference.child("-L-BmanPPTqqXxOivGZs").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Datas datas = dataSnapshot.getValue(Datas.class);
//now you have evry thing in yor pojo
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w(TAG, "Failed to read value.", error.toException());
}
});
关注代码 加入你的班级 我们获取数据的地方
class ListAdapters extends ArrayAdapter<String> {
public ListAdapters(Context context, int textViewResourceId) {
super(context, textViewResourceId);
// TODO Auto-generated constructor stub
}
private List<String> items;
public ListAdapters(Context context, int resource, List<String> items) {
super(context, resource, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.list_item, null);
}
String p = items.get(position);
if (p != null) {
TextView tt = (TextView) v.findViewById(R.id.textviewid);
if (tt != null) {
tt.setText(p);
}
}
return v;
}
}