Я создаю приложение, которое должно получать все будущие события. Люди могут создавать события для будущих дат, а домашняя страница приложения будет извлекать все предстоящие события.
Все события при создании сохраняют время эпохи события. Затем я получаю все события и сравниваю текущее время с каждым разом. Затем я могу утешить журнал, и он отобразится.
Моя проблема в том, что я не уверен, как получить всю информацию, а затем сделать ее.
На данный момент это база данных:
Это код для запроса базы данных и сравнения времени.
var currentTime = Date.now();
var ref = firebase.database().ref('Events/');
var query = ref.orderByChild('availableSpots');
query.once('value', function(snapshot) {
snapshot.forEach(function(child){
var time = child.val().epochTime;
if (currentTime<time) {
//Where should I push this???
}
})
})
В настоящее время я рендерим некоторые фиктивные данные
renderRequests() {
const requests = [
{
id: 1,
spots: "15",
date: "Tuesday 4/16/19",
puckdrop: "10pm",
level: "B",
organizer: "Somg guy",
time: 12,
availability: "Available",
},
{
id: 2,
spots: "0",
date: "Wednesday 4/17/19",
puckdrop: "11pm",
level: "All",
organizer: "Brian",
time: 22,
availability: "Sold out",
},
{
id: 3,
spots: "1",
date: "Wednesday 4/17/19",
puckdrop: "9pm",
level: "D",
organizer: "Erik",
time: 24,
availability: "Available",
},
];
Это часть рендеринга
<ScrollView showsVerticalScrollIndicator={false}>
{requests.map(request => (
<TouchableOpacity activeOpacity={0.8} key={`request-${request.id}`} onPress={() => this.props.navigation.navigate('Event', {
id: request.id,
spots: request.spots,
date: request.date,
puckdrop: request.puckdrop,
level: request.level,
organizer: request.organizer,
availability: request.availability,
})}>
{this.renderRequest(request)}
</TouchableOpacity>
))}
</ScrollView>
Я не уверен, как это сделать. Я чувствую, что должен подходить, когда я делаю сравнение эпох, получаю child.key для тех, которые удовлетворяют моему состоянию. Поместите это в массив, затем создайте функцию, которая перебирает массив, запрашивая каждый ключ у базы данных и устанавливая каждый объект, возвращаемый в массив. Затем, наконец, рендеринг каждого объекта из последнего массива.
Я чувствую, что это неэффективный подход.