Cómo comprobar si la tarea de escritura tuvo éxito en Firebase
Soy totalmente nuevo en Firebase y necesito saber cómo comprobar si mi tarea de escritura fue exitosa porque si no lo hago, la MainActivity
comienza y desordena mi progreso de Register
.
Esto comprueba si el nombre de Username
ya se ha tomado y registra al usuario si no lo es:
- ¿Cómo recuperar mensajes que están dentro de 0.5 kms de mi alcance?
- Configuración del valor de propiedad Singleton en el Listado de Firebase
- Firebase Database devuelve null cada vez que se lee
- Android: ¿Realmente necesito la autenticación personalizada de Firebase?
- PopulateViewHolder no se ejecuta con FirebaseRecyclerAdapter (Android)
Query usernamequery = myRef.orderByChild("Username").equalTo(Username); usernamequery.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { if (snapshot.exists()) { // TODO: handle the case where the data already exists editText.setError("Username taken!"); return; } else { // TODO: handle the case where the data does not yet exist myRef.child("Users").child(Username).child("Userid").setValue(user.getUid()); myRef.child("Users").child(Username).child("Username").setValue(Username); startActivity(maps); finish(); } } @Override public void onCancelled(DatabaseError databaseError) { Toast.makeText(Username.this, "Error", Toast.LENGTH_LONG).show(); } });
Pero quiero que el Intent to Main Activity (mapas) sólo se dispare cuando myRef.child("Users").child(Username).child("Userid").setValue(user.getUid());
y el otro está terminado con su tarea y tiene éxito.
¿Que puedo hacer?
- Guardar clase en firebase
- Robolectric app testing con Firebase
- Obtener las últimas publicaciones / datos de firebase con límite de 10 registros en android y poblar en Listview
- ¿Cómo usar la marca de hora del servidor Firebase para generar la fecha creada?
- ¿Qué es firebase y cómo usarlo en Android?
- Firebase RecyclerVisualización infinita
- E / DynamiteModule: Error al cargar la clase del descriptor del módulo: No encontró la clase
- ¿Cómo almacenar datos en base de datos en tiempo real en firebase durante el registro de usuario?
Para saber cuándo se ha completado una operación de escritura, agregue un escucha de finalización:
myRef.child("Users").child(Username).child("Userid").setValue(user.getUid(), new DatabaseReference.CompletionListener() { void onComplete(DatabaseError error, DatabaseReference ref) { System.out.println("Value was set. Error = "+error); } });
Si desea escribir en varias ubicaciones con una sola operación, desee examinar el método update()
: https://firebase.google.com/docs/database/android/read-and-write#updating_or_deleting_data
La sobrecarga correcta para setValue()
se documenta aquí: https://firebase.google.com/docs/reference/android/com/google/firebase/database/DatabaseReference.html#setValue(java.lang.Object,%20com. google.firebase.database.DatabaseReference.CompletionListener)
- android – HTML en el recurso de cadena
- La intención de Android de compartir datos de texto / datos sencillos en Google Drive