Ya tenemos todo listo para agregar los likes en nuestro componente de ArtistBox.
Vamos a wrappear (envolver) nuestro ícono de corazón con un componente que ya hemos utilizado: TouchableOpacity con un callback para el método onPress:
Y algo que nos permite hacer React es guardar los componentes en variables (o constantes) dependiendo de valores, así podemos mostrar un corazón rojo relleno o uno gris vacío de acuerdo a la variable liked en el estado del componente:
Ahora para guardar el like en Firebase debemos importar nuestro firebaseDatabase y además usar la referencia con el id del artista, algo que nos venía en los datos de la API de last.fm.
Primero en el api-client.js debemos mapear el id del artista en el método getArtists():
Ahora nos falta agregar un listener en el método componentWillMount para que estemos escuchando los cambios que suceden en el objeto guardado en Firebase, para poder actualizar la cantidad de likes:
Y también debemos actualizar nuestro método handlePress para que tome sólo los datos que vienen desde Firebase y no haga nada con el estado del componente:
handlePress =()=>{this.toggleLike()}
Por último el método render debe tomar la cantidad de likes del estado del componente y no de los likes que traía el artista que eran siempre 200 (debemos borrar esa línea en api-client.js también):
Ahora sí, ya tenemos una aplicación donde nos podemos loguear con Facebook y podemos ver en tiempo real las interacciones de otros usuarios. Sólo resta agregar la funcionalidad para que los usuarios puedan realizar comentarios de cada artista.
Agrega la funcionalidad para hacer Like a un artista