He estado usando dos códigos a continuación cuando estoy tratando de encontrar el registro por correo electrónico o número de teléfono, a veces primera multa código de trabajo a veces no funciona y también el segundo código misma también.
¿cuál es la diferencia entre códigos abajo y cuando debería utilizar "equalTo" o "startAt y Endat" ?
ref.orderByChild("email")
.equalTo(str)
y
ref.orderByChild("email")
.startAt(str)
.endAt(str+"\\uf8ff")
ref.orderByChild("email").equalTo(str)
Los medios anteriores que el correo electrónico ha de ser igual al valor de str
. Es lo mismo que decirWHERE email= '[email protected]'
ref.orderByChild("email").startAt(str).endAt(str+"\\uf8ff")
Esto es como decir WHERE email LIKE ca%
que devolverá todos los mensajes de correo electrónico que comienzan con"ca"
public Query startAt (String value)
Crear una consulta limitada a sólo los nodos de retorno del niño con un valor mayor que o igual al valor dado, usando la directiva orderBy dada o prioridad por defecto.
public Query endAt (String value)
Crear una consulta limitada a sólo los nodos de retorno del niño con un valor menor o igual al valor dado, usando la directiva orderBy dada o prioridad por defecto.
El
\uf8ff
es simplemente el último carácter en Unicode, por lo que actúa como un protector final.
Comprobar esto para consultas: