在android中从firebase数据库检索特定节点
我正在尝试在我的android应用程序中使用Firebase。我需要获取一个对象,我正在搜索它的电子邮件(对象中的属性)。 这是我的搜索代码:在android中从firebase数据库检索特定节点,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在尝试在我的android应用程序中使用Firebase。我需要获取一个对象,我正在搜索它的电子邮件(对象中的属性)。 这是我的搜索代码: FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("Remorqueur"); Query queryRef=myRef.orderByChild("email").equalTo(ed_m
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Remorqueur");
Query queryRef=myRef.orderByChild("email").equalTo(ed_mail.getText().toString());
如果对象存在于我的数据库中,我需要取回整个对象!我该怎么做呢?应该可以做如下事情
queryRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
MyPojo app = childSnapshot.getValue(MyPojo.class);
}
应该能够做到以下几点
queryRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
MyPojo app = childSnapshot.getValue(MyPojo.class);
}
请试试这个
DatabaseReference dbRef = firebaseDatabase.getReference("Remorqueur");
Query query = profileDbRef
.orderByChild("email")
.equalTo(ed_mail.getText().toString());
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
Log.d(TAG, dataSnapshot1.getKey() + " " + dataSnapshot1.getValue(Profile.class)
.toString());
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
请试试这个
DatabaseReference dbRef = firebaseDatabase.getReference("Remorqueur");
Query query = profileDbRef
.orderByChild("email")
.equalTo(ed_mail.getText().toString());
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
Log.d(TAG, dataSnapshot1.getKey() + " " + dataSnapshot1.getValue(Profile.class)
.toString());
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
只需将一个
ValueEventListener
附加到该查询,然后您就可以使用if(dataSnapshot.exists())
检查数据是否存在。当我找到我要查找的内容时,我需要将该操作委派给一个新的活动:query.addValueEventListener(new ValueEventListener(){@Override public void onDataChange(DataSnapshot DataSnapshot){if(DataSnapshot.exists(){Log.d(“tester”,“existe”);rq=true;Intent i=newintent(Accueil.this,Map_Client.class);}在该函数中,Intent不起作用,我能做什么?只需在该查询中附加一个ValueEventListener
,然后您就可以检查数据是否存在(dataSnapshot.exists())当我找到我要查找的内容时,我需要将该操作委托给一个新活动:query.addValueEventListener(new ValueEventListener(){@Override public void onDataChange(dataSnapshot dataSnapshot){if(dataSnapshot.exists()){Log.d(“tester”,“existe”);rq=true;Intent I=new Intent(Accueil.this,Map_Client.class);}在该函数中,意图不起作用,我可以做什么?当我找到我要查找的内容时,我需要将该操作委托给一个新活动:query.addValueEventListener(new ValueEventListener(){@Override public void onDataChange(DataSnapshot DataSnapshot){if(dataSnapshot.exists()){Log.d(“tester”,“existe”);rq=true;Intent i=newintent(accureil.this,Map_Client.class);}在这个函数中,意图不起作用,我能做什么呢?我想你在初始化意图后错过了startActivity(I)调用。当我找到我要找的内容时,需要将该操作委派给一个新的活动:query.addValueEventListener(new ValueEventListener()){@Override public void onDataChange(DataSnapshot DataSnapshot){if(DataSnapshot.exists()){Log.d(“tester”,“existe”);rq=true;Intent i=new Intent(accureil.this,Map_Client.class);}在这个函数中,意图不起作用,我能做什么呢?我想你在初始化意图后错过了startActivity(I)调用