Swift 3 сортируется (по: & lt;)
let dictionary = [
"A" : [1, 2],
"Z" : [3, 4],
"D" : [5, 6]
]
let sortedKeys = Array(dictionary.keys).sorted(by:<) // ["A", "D", "Z"]
Я сам не использовал firebase, но похоже, что приведенный ниже код настраивает слушателя для «квестовых» изменений, которые будут выполняться каждый раз, когда происходит изменение, но вы определили const quests = []
вне обработчика изменений db. Это означает, что при втором изменении вы поместите все снимки в тот же массив quests
, в который, возможно, уже были добавлены предыдущие снимки. Я полагаю, что вы можете это исправить, переместив переменную quests
внутри функции слушателя, как показано ниже.
componentDidMount() {
const database = firebase.database();
database.ref('quest').on('value', (snapshot) => {
const quests = [];
snapshot.forEach((childSnapshot) => {
quests.push({
id: childSnapshot.key,
quest: childSnapshot.val().quest,
points: childSnapshot.val().points,
});
});
console.log(quests);
this.setState(() => {
return {
quests: quests
}
});
console.log(this.state.quests);
});
}