React Native: загрузка изображений из Firebase с помощью Flatlist не работает - PullRequest
0 голосов
/ 17 апреля 2020

Когда я тестирую URI из изображения с console.log ('Image URi:' + JSON .stringify (post.image)); Я получаю URL от Firebase, и он работает в браузере, но не в приложении. Я получаю только результат из текста в приложении. Я не знаю, почему это не работает, потому что все кажется правильным. может быть, у меня есть способ с помощью цикла-метода. Буду признателен за помощь. Это мой домашний экран:

import React from 'react';
import { View, Text, StyleSheet, ActivityIndicator, FlatList, Image, SectionList } from 'react-native';
import Fire from '../Fire';

export default class HomeScreen extends React.Component {

    state = { postal: [] }
    _fetchData = async () => {
        const query = await Fire.shared.firestore.collection("posts").get();
        const posts = [];
        query.forEach(doc => posts.push(doc.data()));
        this.setState({ postal: posts })

    };
    componentDidMount() {
        this._fetchData();
    }

    renderPost = (post) => {
        return (
            <View >
                <View style={{ flex: 1 }}
                        <View>

                            <Image source={{ uri: post.image }} style={styles.image} />
            </View>

            <Text style={styles.post}>{post.text}</Text>
            </View >
        );
    };
    render() {
        return (
            <View >
                <FlatList
                    style={styles.feed}
                    data={this.state.postal}
                    renderItem={({ item }) => this.renderPost(item)}
                    keyExtractor={item => item.timestamp}
                />
            </View>

        );
    }

Это мой Firebase.

import FirebaseKeys from './config';
import firebase from 'firebase';
require('firebase/firestore');
import firestore from 'firebase/firestore';

class Fire {
    constructor() {
        firebase.initializeApp(FirebaseKeys);
    }

    get firestore() {
        return firebase.firestore();
    }

    get uid() {
        return (firebase.auth().currentUser || {}).uid;
    }

    get timestamp() {
        return Date.now();
    }
}

Fire.shared = new Fire();
export default Fire;
...