在像本例中的文档这样的节点中在 firebase 中进行查询时,我想从该节点带来两个字段并将它们放在一个字符串变量中,以向数据库添加信息我不使用登录,我使用推送() 方法。
当按下咨询按钮时,文档与在编辑文本中输入的文档进行比较,然后它将检索a1a2_a1和a1a2_a2字段的值,在这种情况下我收到空值。
执行查询并尝试检索字段值的侦听器:a1a2_a1和a1a2_a2。我得到空值。
consultar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String dat_2 = doc.getText().toString();
//Consultando una referencia
Query q=refDatos.orderByChild("doc").equalTo(dat_2);
q.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int cont=0;
for(DataSnapshot datasnapshot: dataSnapshot.getChildren()){
cont++;
}
if(cont==0){
Toast.makeText(PollaMundialista.this, "No se encontró información ", Toast.LENGTH_LONG).show();
}
if(cont>0){
String dato1 = dataSnapshot.child("a1a2_a1").getValue().toString();
String dato2 = dataSnapshot.child("a1a2_a2").getValue().toString();
Toast.makeText(PollaMundialista.this, " Dato: "+dato2, Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
全班:
public class PollaMundialista extends AppCompatActivity {
private EditText nom,doc,email,phone,a1a2_a1,a1a2_a2;
ImageButton enviar;
Button consultar;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference root = FirebaseDatabase.getInstance().getReference();
DatabaseReference refDatos = root.child("uniagust/polla");
DatabaseReference c1 = root.child("uniagust/polla/doc");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pollamundialista);
enviar = (ImageButton) findViewById(R.id.enviar1);
consultar = (Button) findViewById(R.id.consultar);
//Datos personales
nom = (EditText) findViewById(R.id.nom);
doc = (EditText) findViewById(R.id.doc);
email = (EditText) findViewById(R.id.email);
phone = (EditText) findViewById(R.id.phone);
//Predicciones
a1a2_a1 = (EditText) findViewById(R.id.a1a2_a1);
a1a2_a2 = (EditText) findViewById(R.id.a1a2_a2);
final DatabaseReference uniagust = database.getReference(FirebaseReferences.REFERENCE_1);
final DatabaseReference polla = database.getReference(FirebaseReferences.REFERENCE_2);
enviar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String dat_1 = nom.getText().toString();
final String dat_2 = doc.getText().toString();
final String dat_3 = email.getText().toString();
final String dat_4 = phone.getText().toString();
final String dat_5 = a1a2_a1.getText().toString();
final String dat_6 = a1a2_a2.getText().toString();
//Consultando una referencia
Query q=refDatos.orderByChild("doc").equalTo(dat_2);
q.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int cont=0;
for(DataSnapshot datasnapshot: dataSnapshot.getChildren()){
cont++;
}
if(cont==0){
Polla_uniagust polla_obj = new Polla_uniagust(dat_1,dat_2,dat_3,dat_4,dat_5,dat_6);
uniagust.child(FirebaseReferences.REFERENCE_2).push().setValue(polla_obj);
Toast.makeText(PollaMundialista.this, "Se ha enviado su participación ", Toast.LENGTH_LONG).show();
}
if(cont>0){
Toast.makeText(PollaMundialista.this, "Este documento ya se encuentra registrado, si es un error.... ", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
consultar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String dat_2 = doc.getText().toString();
//Consultando una referencia
Query q=refDatos.orderByChild("doc").equalTo(dat_2);
q.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int cont=0;
for(DataSnapshot datasnapshot: dataSnapshot.getChildren()){
cont++;
}
if(cont==0){
Toast.makeText(PollaMundialista.this, "No se encontró información ", Toast.LENGTH_LONG).show();
}
if(cont>0){
String dato1 = dataSnapshot.child("a1a2_a1").getValue().toString();
String dato2 = dataSnapshot.child("a1a2_a2").getValue().toString();
Toast.makeText(PollaMundialista.this, " Dato: "+dato2, Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
}
}
为了使其对您更有用,我们将执行以下操作
我们使用要请求的数据创建一个单独的类(一个 bean),请注意,您可以将其扩展为您在 firebase 中拥有的当前数据
然后我们只需遍历 dick 中的每个按键并得到我们想要的(我们在 bean 中定义的)
在这种情况下,我将指代公鸡
mDatabase 在哪里
希望对你有帮助