Как установить и получить массив значений ключей на Firestore + Ionic 4? - PullRequest
0 голосов
/ 10 марта 2019

Я пытаюсь установить и получить некоторые заметки TODO, но проблема в том, что я делюсь ими со всеми пользователями, и это НЕ СОХРАНЯЕТСЯ в моей базе данных firestore, не знаю почему, но это остается.Моя модель:

screenshot

, и мой метод добавления и получения:

    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 Ответ

0 голосов
/ 16 марта 2019

окончательно решено

Это мой код:

# 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
    })
}

MY MODAL

...