Saltar al contenido

Incrementar automáticamente un valor en Firebase

No dejes de compartir nuestros tutoriales y códigos con otro, ayúdanos a hacer crecer nuestra comunidad.

Solución:

Aquí hay un método de ejemplo que incrementa un solo contador. los key la idea es que está creando la entrada (configurándola igual a 1) o mutando la entrada existente. El uso de una transacción aquí asegura que si varios clientes intentan incrementar el contador al mismo tiempo, todas las solicitudes eventualmente tendrán éxito. De la documentación de Firebase (énfasis mío):

Use nuestra función de transacciones cuando trabaje con datos complejos que podría corromperse con actualizaciones simultáneas

public void incrementCounter() 
    firebase.runTransaction(new Transaction.Handler() 
        @Override
        public Transaction.Result doTransaction(final MutableData currentData) 
            if (currentData.getValue() == null) 
                currentData.setValue(1);
             else 
                currentData.setValue((Long) currentData.getValue() + 1);
            

            return Transaction.success(currentData);
        

        @Override
        public void onComplete(FirebaseError firebaseError, boolean committed, DataSnapshot currentData) 
            if (firebaseError != null) 
                Log.d("Firebase counter increment failed.");
             else 
                Log.d("Firebase counter increment succeeded.");
            
        
    );

Se agrega una nueva característica a firestore para incrementar automáticamente los valores. Tan simple como

document("fitness_teams/Team_1").
  updateData(["step_counter" : FieldValue.increment(500)])

enlace de referencia: https://firebase.googleblog.com/2019/03/increment-server-side-cloud-firestore.html

Usado debajo del código en mi proyecto.

var firestore = Firestore.instance;
firestore.collection('student').document('attendance').updateData('total_attendace': FieldValue.increment(1));

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *