#google-cloud-firestore #ionic4
#google-облако-firestore #ionic4
Вопрос:
Я пытаюсь установить и получить некоторые заметки о задачах, но проблема в том, что я делюсь ими со всеми пользователями, и они НЕ СОХРАНЯЮТСЯ в моей базе данных firestore, не знаю почему, но они остаются. Моя модель:
и мой метод добавления и получения:
idea: Idea = {
name: '',
note: '',
date: new Date().getTime()
};
ADD:
this.afs.collection(`users/${this.user.getUID}/ideas`).add(this.idea)
GET_ALL:
this.afs.collection(`users/${this.user.getUID}/ideas`)
Я хорошо справляюсь со своим модальным? мне нужно установить некоторый идентификатор для каждой идеи? Большое вам спасибо
ОБНОВЛЕНО:
Теперь я знаю, как это добавить, теперь просто нужно знать, как передать позицию массива, которую я кликнул на страницу сведений, чтобы загрузить идею с деталями.
РЕШЕНИЕ ДОБАВИТЬ:
this.afs.doc(`users/${this.user.getUID()}`).update({
ideas: firestore.FieldValue.arrayUnion(this.idea)
})
Ответ №1:
НАКОНЕЦ-ТО РЕШЕНО
Это мой код:
# ADD #
this.afs.collection('ideas').add(this.idea)
# LOAD FROM EXISTING IDEA #
ngOnInit() {
this.ideaId = this.route.snapshot.params['id']
if (this.ideaId) {
this.loadIdea();
}
}
async loadIdea() {
this.afs.collection<Idea>(`/ideas`)
.doc<Idea>(this.ideaId)
.valueChanges()
.subscribe(data => {
console.log(data)
this.idea = data
loading.dismiss()
})
}
# REMOVE #
remove(idea: firebase.firestore.QueryDocumentSnapshot) {
firebase.firestore()
.collection('ideas')
.doc(idea.id).delete()
})
}
# GET LIST FROM IDEAS #
getIdeas(){
firebase.firestore().collection('ideas')
.where('owner', '==', this.user.getUID())
.onSnapshot(querySnapshot => {
console.log('querySnapshot: ' querySnapshot)
this.ideas = querySnapshot.docs
})
}