Agrega un avatar de usuario para mostrar en los comentarios
Clase 27 de 36 • Curso de React Native 2016
Contenido del curso
Requerimientos técnicos del curso
Introducción al Desarrollo Mobile
Primera App con React Native
PlatziMusic
Autenticación de usuarios
Agreguemos las funcionalidades principales a nuestra app: likes y comentarios
- 23

Refactor y referencias de Firebase
07:06 min - 24

Agrega la funcionalidad para hacer Like a un artista
26:30 min - 25

Envia comentarios de un artista y almacénalos en Firebase
16:49 min - 26

Lista los comentarios de un artista trayendo los datos desde Firebase
19:43 min - 27

Agrega un avatar de usuario para mostrar en los comentarios
Viendo ahora
Refinando detalles de la app
Llevando la app a los Stores
Conclusiones
Desafíos
Tenemos un listado de comentarios para cada artista, pero nos gustaría conocer quién escribió cada uno y sería bueno ver una foto suya. Aprovechemos que el servicio de autenticación de Firebase nos proporciona una manera de acceder a la foto de un usuario que haya iniciado sesión.
En el método handleSend de nuestro ArtistDetailView debemos agregar las siguientes líneas para guardar también la foto del usuario y su identificador:
handleSend = () => {
...
newCommentRef.set({
text,
userPhoto: photoURL,
uid
});
...
}
En nuestro CommentList, en el método render debemos pasarle el avatar a cada renderRow:
return <Comment text={comment.text} avatar={comment.userPhoto} />
Y finalmente en nuestro componente Comment debemos hacer algunas modificaciones para agregar el avatar del usuario. Vamos a agregar una URL para los comentarios que hayan sido hechos antes de que empecemos a grabar los avatares, definiendo una constante llamada DEFAULT_AVATAR:
import React from 'react'
import {
StyleSheet,
Text,
View,
Image
} from 'react-native'
const DEFAULT_AVATAR = 'https://flipagram.com/assets/resources/img/fg-avatar-anonymous-user-retina.png'
const AVATAR_SIZE = 32
const Comment = (props) =>
<View style={styles.comment}>
{
props.avatar ?
<Image style={styles.avatar} source={{ uri: props.avatar }} /> :
<Image style={styles.avatar} source={{ uri: DEFAULT_AVATAR }} />
}
<Text style={styles.text}>{props.text}</Text>
</View>
const styles = StyleSheet.create({
comment: {
backgroundColor: '#ecf0f1',
padding: 10,
margin: 5,
borderRadius: 5,
flexDirection: 'row',
alignItems: 'center'
},
text: {
marginLeft: 10,
fontSize: 16
},
avatar: {
width: AVATAR_SIZE,
height: AVATAR_SIZE,
borderRadius: AVATAR_SIZE / 2
}
})
export default Comment
Si tienes algunas dudas, puedes descargar los archivos en la pestaña de archivos de este video y ver cómo se ven finalmente.
Las funcionalidades de la app ya están cubiertas así que en los siguientes videos vamos a dedicarnos a refinar detalles para dejarla lista para subirla a los Stores.