Я новичок в React native. У меня проблема с воспроизведением видео с YouTube, которую я хочу получить из базы данных Firebase. Я могу воспроизводить видео со статическими ссылками. Я должен использовать webview, потому что я не хочу использовать API YouTube.
Мой код:
import React, { Component } from 'react';
import { View, ListView, WebView, StyleSheet } from 'react-native';
import { Container, Content , Header , From , Input , Item , Button , Label, Icon ,List,ListItem} from 'native-base';
import * as firebase from 'firebase';
const firebaseConfig = {
apiKey: "xxxxxxxxxxxxxxxxxx",
authDomain: "stream-xxxx.xxxxxxxxxxxxxxxx.com",
databaseURL: "https://stream-f3b1e.xxxxxxxxxxx.com",
projectId: "stream-xxxxxxxxxxxx",
storageBucket: "stream-xxxxx.xxxxxxxxxxxxxxx.com",
messagingSenderId: "xxxxxxxxxxxxxxxxxx"
};
firebase.initializeApp(firebaseConfig);
var data = [];
class App extends Component{
constructor (props) {
super (props);
this.ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});
// trying to do database intregration
this.state = {
listViewData : data,
newContact: '',
};
this.state = {
//dataSource: this.ds.cloneWithRows(data),
dataSource : this.ds.cloneWithRows(data),
};
}
componentDidUpdate(){
var that = this
firebase.database().ref('/link').on('child_added',function(data){
var newData = [...that.state.listViewData]
newData.push(data)
that.setState({listViewData : newData})
})
}
render(){
return (
<ListView
renderHeader={this.renderHeader.bind(this)}
dataSource={ this.state.dataSource }
renderRow={this.renderRows.bind(this)}
/>
);
}
renderHeader(){
return(
<Header>
<Content>
<Item>
<Input
placeholder='Add me'
/>
<Button>
<Icon name='add' />
</Button>
</Item>
</Content>
</Header>
)
}
renderRows(rowData){
console.log("data: "+rowData.val().name);
return(
<View style={styles.container}>
<WebView source={{uri: rowData.data.val().name}} style={{}} />
</View>
</View>
);
}
}
export default App;