Usuario de Firebase photoURL y displayName

Estoy teniendo un tiempo tratando de entender lo que pensé que era un concepto simple.

Tengo una aplicación donde inscribo a un usuario, que le permite a ese usuario configurar una 'photoURL' a su información de 'usuario' en el sistema Firebase Auth. Esto funciona. Cuando el usuario crea una publicación en mi aplicación, quiero mostrar el título, la imagen y la 'fotoURL' del creador.

Actualmente, guardo la publicación:

-Post {
 -id
 -title
 -image
 -photoURL <- from current logged in user }

También permito a los usuarios visitar la página de carteles a través de enrutamiento / cartel / 'displayName'

Entonces, cuando un usuario actualiza su información de perfil como displayName o photoURL, ¿debo buscar todas las publicaciones, comentarios, mensajes, respuestas y cualquier otro lugar en el que este usuario tenga un registro y actualizar el photoURL?

Lo que pensé que podría hacer es decir: (pseudocódigo)

get all posts =>
 foreach(post)
   post = {
          title: post.title.val()
          image: post.image.val()
          avatar: firebase.database().ref().child('users' + post.key)
          }

Todo lo que leo dice que necesito almacenar esa fotoURL en mi propia tabla de 'Usuarios'. Si hago eso, entonces ninguna de las publicaciones se actualizará a menos que escriba una llamada al servidor para hacerlo cada vez que haya un cambio. El problema es que si tengo 100K usuarios, y el 10% de ellos cambian su photoURL, entonces tengo que cambiarlo en publicaciones, comentarios, respuestas y mensajes por usuario. Si el usuario promedio tiene 100 publicaciones, 4000 comentarios, 6000 respuestas, estamos viendo alrededor de 10K lugares * 10K usuarios que deben actualizarse y si la llamada promedio del servidor es 137ms, entonces mis costos son alrededor de $ 175 (costos)

La otra opción es extraer información de dos tablas y crear un nuevo objeto cada vez. Esto llevaría a duplicar las llamadas al servidor y el tiempo, duplicando así mis costos.

¿Es este el mejor enfoque para esto? Pensé que sería mucho más fácil obtener la foto de usuario y el nombre para mostrar.

Perdón por la larga publicación épica pero estoy tratando de aprender. ¡Gracias a todos!

Respuestas a la pregunta(1)

Su respuesta a la pregunta