Как добавить массив в Angular Firestore? - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь добавить идентификаторы в свою коллекцию пользователей для контроля доступа в Firestore, используя Angular Fire 2.

 grantCompanyAccess (user, companyId) {
    try {
      const userAccess: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`);
      return userAccess.set({companies: [companyId]});
    } catch (error) {
      console.log(error);
    }
  }

  removeCompanyAccess (user, companyId) {
    try {
      const userAccess: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`);
      const userData = {
        companies:  [{companyId}]
      };
      // return userAccess.collection('companies').doc(companyId).delete();
      return userAccess.collection('companies').doc(companyId).delete();
    } catch (error) {
      console.log(error);
    }
  }

В настоящее время метод предоставления заменяет идентификатор в массиве. Как добавить в массив, если значение не существует ({merge: true} не работает), и удалить из массива методом remove.

1 Ответ

0 голосов
/ 17 мая 2019

Сначала вы должны получить массив из firebase, а затем вставить новый идентификатор в этот массив. После этого вы можете установить компании с обновленным массивом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...