Как получить вновь созданный автоматически сгенерированный идентификатор из облачного хранилища angularfire2 - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь получить автоматически сгенерированный идентификатор из firestore после того, как он был недавно создан, но я не знаю, почему, когда я console.log(ref), это undefined, пожалуйста, посмотрите мои коды:

import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';

@Injectable()
export class UserProvider {

  usersCollectionRef: AngularFirestoreCollection<any>;

  constructor(public http: HttpClient, public firestore: AngularFirestore) {
    this.usersCollectionRef = this.firestore.collection<any>('users');
  }

  addUpdateContact(name: string, email: string) {
    const newId = this.firestore.createId();
    this.usersCollectionRef.doc(newId).set({ username: name, email: email }).then(ref => {
      console.log(ref);
    });
  }
}

Ему удается успешно вставить данные в firestore, хотя

Я использую ionic 3 и angularfire2 5.4.2

Я пробовал решения из этого потока но не работает ... Помогите пожалуйста спасибо

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Я решил это, для всех, кому в будущем понадобится решение:

Измените коды addUpdateContact на:

this.usersCollectionRef.add({ username: name, email: email }).then(ref => {
      console.log(ref.id);
    });

Спасибо @nikoswsn за то, что подарили мне идею в google для this , часть 1. Saving Data примерно того же кода, что и измененный мной

0 голосов
/ 20 июня 2020

В методе .set () вы должны указать идентификатор документа, это означает, что у вас уже есть идентификатор. Пожалуйста, поясните, чего вы хотите достичь.

Также проверьте возвращаемый объект метода .set () здесь

...