Ich habe Probleme beim Abrufen von Daten aus Firebase spezifischen Ort. Ich habe einen Zustand ("Favoriten", der vom Firebase übernommen wurde). Favoritenstatusobjekte enthalten nur eindeutige Firebase-Schlüssel, die beim Klicken auf "Post zu Favoriten hinzufügen" (ich habe Postdaten in Firebase) gedrückt wurden. Also, wie könnte ich mehrere Post-Daten mit diesen eindeutigen Schlüssel, die in "Favoriten" -Knoten sind abrufen?So erhalten Sie mehrere Daten von Firebase nur mit eindeutigen Schlüsseln in reaktiven nativen
Code:
class MyFavouriteScreen extends Component {
constructor(props) {
super(props);
this.state = {
favourites: [],
favouritesPosts: [],
};
}
componentWillMount() {
let user = firebase.auth().currentUser.uid;
favouritesFire = firebase.database().ref('users').child(user + '/favourites');
let that = this;
favouritesFire.once("value", function(snapshot){
let favs = [];
snapshot.forEach(function(data){
let fav = {
id: data.key
}
favs.push(fav);
that.setState({favourites: favs});
});
});
// ^- there i get those unique keys and now i need to retrieve post data with those keys and show them in render function
}
render() {
const { navigate } = this.props.navigation;
return (
<View style={styles.mainContainer}>
<MyNavScreen banner="Favoritai" navigation={ navigate } />
<ScrollView style={styles.wrapper}>
{this.state.favouritesPosts.map(post => {
return (
<TouchableOpacity post={post} style={styles.postWrapper}>
<View style={styles.postImageWrapper}>
<Image
source={{uri: post.image}}
style={{flex: 1}} />
</View>
<View style={styles.shopContent}>
<Text style={styles.postTitle}>{post.title}</Text>
<Text style={styles.postText}>{post.text}</Text>
</View>
<TouchableOpacity style={styles.starWrapper}>
<Text style={styles.star}>{'-'}</Text>
</TouchableOpacity>
</TouchableOpacity>
);
})}
</ScrollView>
</View>
);
}
}
hilft, was ist Ihr Code und Datenstruktur? – Ben
Hey Ben danke für die Antwort. habe meinen Code hinzugefügt – MGalmostcoder
@Ben Kannst du helfen? – MGalmostcoder