У меня есть две коллекции в базе данных (назначение и пользователи). Коллекция встреч имеет одно поле (дата), в котором должны храниться дата и время, которые пользователь выбрал в приложении. Есть два файла, которые выполняют эту операцию: файл DatePicker. js записывает встречу и HomeScreen. js читает все встречи, сделанные пользователями, где последние встречи находятся вверху отображаемого списка.
Это DatePicker. js основано на коде, представленном на странице @act-native-community / datetimepicker. Во-первых, я хочу, чтобы currentDate был виден после выбора. const book, предполагается записывать в базу данных при нажатии кнопки book.
const Booking = () => {
const [date, setDate] = useState(new Date(1598051730000));
const [mode, setMode] = useState('date');
const [show, setShow] = useState(false);
const onChange = (event, selectedDate) => {
const currentDate = selectedDate || date;
setShow(Platform.OS === 'ios');
setDate(currentDate);
};
const showMode = currentMode => {
setShow(true);
setMode(currentMode);
};
const showDatepicker = () => {
showMode('date');
};
const showTimepicker = () => {
showMode('time');
};
const book = () => {
firebase.database().ref('appointment/').set({ date })
.then((currentDate) => {
console.log('currentDate ', currentDate)
}).catch((error) => {
console.log('error ', error)
})
}
return (
<View>
<View style={styles.picker}>
<Button
onPress={showDatepicker} title="Pick Date"
/>
</View>
<View style={styles.picker}>
<Button
onPress={showTimepicker} title="Pick Time"
/>
</View>
{show && (
<DateTimePicker
testID="dateTimePicker"
timeZoneOffsetInMinutes={0}
value={date}
mode={mode}
is24Hour={true}
display="default"
onChange={onChange}
/>
)}
<View>
<Button
onPress={book} title="Book"
/>
</View>
</View>
);
};
export default Booking;
Второй файл HomeScreen. js Здесь должна выполняться операция чтения.
const showAppointments = () => {
const appointmentRef = firebase.database().ref("appointment/");
appointmentRef.on("child_added", function(data) {
const newAppoinment = data.val();
});
}
export default class HomeScreen extends React.Component {
render() {
return (
<View style={styles.container}>
<View style={styles.header}>
<Text style={styles.headerTitle}>Appointments</Text>
<Button
onPress={() => this.props.navigation.navigate('Booking')} title="Add"
/>
</View>
<FlatList
data={showAppointments}
/>
</View>
);
}
}