Bom Dia.
Estou desenvolvendo um aplicativo em react-native junto com firebase e estou com duvidas quando vou fazer listas,Eu estou pegando os dados do firebase na ‘‘tabela’’ pets, consigo retornas todos os dados dessa ‘‘tabela’’, tem um campo que seria o useurUid que é o usuário dono dessa animal, e eu queria pegar os dados do usuário para adicionar e utilizar nessa lista tbm, tentei fazer algo assim, mas não está dando certo.
Obs: a parte que retorna os dados de cada animal do banco está dando certo, inclusive está retornando os userUid, a parte de pegar os dados no banco com base no userUid e também adicionar na lista que está dando errado.
import React, { Component } from 'react';
import { NavigationActions, StackActions } from 'react-navigation';
import { connect } from 'react-redux';
import { SignOut } from './actions/AuthActions';
import firebase from './FirebaseConnection';
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
import {
StyleSheet,
View,
Text,
Image,
TouchableOpacity,
Dimensions,
Button,
Header,
FlatList
} from 'react-native';
import { metrics, fonts, colors } from './styles';
const { width } = Dimensions.get('window')
export class Lost extends Component {
static navigationOptions = {
title: 'Perdidos',
headerTitleStyle: {
textAlign: 'center',
flex: 1
},
//header: null,
headerTintColor: '#333',
}
constructor(props) {
super(props);
this.state = {
list: []
};
firebase.database().ref('pets/lost').on('value', (snapshot) => {
let state = this.state;
state.list = [];
var userName = '';
snapshot.forEach((childItem) => {
firebase.database().ref('/users/' + childItem.val().userUid + '/profile').once('value').then((snapshot2) => {
userName: snapshot2.val().name;
});
state.list.push({
key: childItem.key,
userName: userName,
name: childItem.val().name,
breed: childItem.val().breed
});
});
this.setState(state);
});
}
render() {
return (
<View>
<FlatList
data={this.state.list}
renderItem={({ item }) => {
return (
<View>
<Text>{item.name},{item.userName}</Text>
</View>
);
}}
/>
</View>
);
}
}
const mapStateToProps = (state) => {
return {
status: state.auth.status,
uid: state.auth.uid,
name: state.auth.name,
email: state.auth.email,
city: state.auth.city,
uf: state.auth.uf
};
};
const LostConnect = connect(mapStateToProps, { SignOut })(Lost);
export default LostConnect;