如何从angularfire2 cloud firestore获取新创建的自动生成的ID

How to get newly created auto generated ID from angularfire2 cloud firestore

我正在尝试从 firestore 新创建后获取自动生成的 ID,但我不知道为什么当我 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 3angularfire2 5.4.2

我已经尝试了 的解决方案,但它不起作用...请帮助我,谢谢

使用 .set() 方法必须指定文档 ID,这意味着您已经有了该 ID。请说明您希望实现的目标。

请同时检查 .set() 方法的返回对象 here

我已经解决了,以后有需要的人:

addUpdateContact 代码更改为:

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

感谢@nikoswsn 为 this 提供 google 的想法,1. Saving Data 部分与我修改的代码大致相同