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.
Hay problema en el server B… no puedo ver el video…
Una duda, al loguearse con una cuenta diferente, se tenia un error por cuestión de permisos, se dio permiso a Victor con un rol de “Desarrollador”, en el caso de algún otro usuario que no conozcamos ? cómo hacer público el logueo ?
Para eso debes pasar esa cuenta de FB de modo desarrollo a modo público. A partir de ese momento, cualquier usuario de FB podrá loguearse sin problemas.
No funciona el server B TwT
arreglen el server B por favor
No va el servidor B y en mi Universidad no funciona el A
Buenas, un par de dudas:
En el componente ArtistBox cuando se inicializa el state, ¿Cúal es la diferencia de crear un constructor para esto, o como en este caso, no crear ninguno?, porque en otros componentes si se crea el constructor donde se inicializa.
Y la segunda duda: ¿el componentWillMount() hace la misma función que el constructor?, supongo que no, pero ¿Cúal sería la diferencia entre ambas?
Gracias, Saludos
Super una base de datos en tiempor real .
En este código me arroja un waning: Can only update a mounted or mounting component. Alguien tiene idea de como solucionarlo?
Hola a todos,
Alguien me podria ayudar con esto, intento mostrar un componente u otro dependiendo del estado, pero se queda en blanco la pantalla; aclaro si pongo de forma directa en el render alguno de los 2 componentes si funciona de forma correcta, he intentado colocandolo dentro de una View pero tampoco funciona.
Muchas gracias
exportdefaultclassAppextendsComponent<Props>{ state ={isLogin:false,usuario:null}render(){const viewResult =this.state.isLogin?<Layout/>:<Login/>return(<View>{viewResult}</View>);}}