firebase.database().ref("/user/" + user.uid).set({ email:user.email, points:"500", uid: user.uid })¿Puedo comparar los puntos en mi base de datos y los puntos necesarios y ejecutar la tarea? Por ejemplo, si el usuario tiene 500 puntos en la base de datos pero se requieren 500 puntos para realizar una operación en la aplicación web, ¿es posible hacerlo? Cualquier sugerencia sera apreciada.
Si desea realizar una operación en una ruta en la base de datos en función de su valor actual, querrá usar una transacción :
firebase.database().ref("user").child(user.uid).child("points") .transaction((currentValue) => { if (parseInt(currentValue) > 500) { ... do you operation and currentValue and return the result to be written to the database } })Como dije en mi respuesta a su pregunta anterior, recomiendo almacenar el valor de los puntos como un número, para que no tenga que analizarlo en su código y para que las operaciones numéricas sean posibles en él.
Recomiendo pasar algún tiempo leyendo la documentación de Firebase en este punto. Pasar unas pocas horas allí ahora evitará muchas de esas preguntas en el futuro.
Además de (y posiblemente en lugar de) este código del lado del cliente, también querrá validar el valor de los puntos en las reglas de seguridad de su base de datos. Por ejemplo, si los puntos siempre deben ser un número positivo:
{ "rules": { ... "user": { "$uid": { "points": { ".validate": "newData.isNumber() && newData.val() >= 0" } }, } } }