Familiarizarse con Firebase y JavaScript para codificar funciones en la nube; pero supongo que estoy buscando si alguien puede explicar los pros y los contras de usar lo siguiente para búsquedas y/o escrituras en las funciones de la nube.
admin.database().ref()root.child() Yo mismo he estado usando admin.database.ref() , pero ¿necesito hacerlo? ¿Es tan bueno usar root.child() en su lugar?
Veo que también has hecho esta pregunta en los comentarios de mi Firecast en YouTube . Buena pregunta. Si ha estado siguiendo los ejemplos de Cloud Functions para Firebase, es posible que haya visto admin.database().ref() .
admin.database().ref() usa el SDK de administrador de Firebase para acceder a los datos en la base de datos. Como referencia de administrador, tiene acceso sin restricciones a cualquier parte de la base de datos.
En el video, root = event.data.ref.root , una referencia a la raíz de la base de datos donde ocurrió el evento .onWrite . ref tiene el mismo acceso de lectura y escritura que el usuario que activó el evento. A diferencia admin.database().ref() , no otorga acceso sin restricciones. root.child por lo tanto, accede a esa ruta específica en la base de datos, siempre que el usuario tenga permiso para acceder a ella.
Ahora event.data.adminRef.root es una referencia de base de datos con acceso sin restricciones a cualquier parte de la base de datos. Si esto suena como admin.database.ref() , es porque son exactamente iguales. En mi caso, elegí event.data.ref.root para limitar la cantidad de temas nuevos introducidos en un video. Si te sientes más cómodo usando el SDK de administrador, no hay problema.