javascript - Angular/Firestore - 获取由 'add' 方法创建的 ID 以用于路由器导航

标签 javascript angular google-cloud-firestore

我在用什么

  • Angular
  • FireStore

我要实现的目标

  • 使用 'add' 方法创建一个新项

  • 导航到包含“add”方法生成的新 ID 的 URL

问题

  • 我可以很好地创建一个新项目
  • 不知道如何获取新建item的id
  • 我总是以我所在页面的 ID 结尾

问题

  • 如何在创建新项目并在路由器链接中使用它时获取新项目的 ID?

组件 TS

如您所见,在我的路由器中,我放置了一个占位符“newId”。这是我想作为刚刚由“添加”部分创建的项目的 ID 的部分。

  addTemplateProject() {

    var album_title = new Date();

    const newAlbum: any = { project_title }

    this.albumCollection.add(newAlbum);

    this.router.navigate(['folders', this.folderId, 'albums', newId, 'edit']);
  }

最佳答案

喜欢documentation状态:

// Add a new document with a generated id.
db.collection("cities").add({
    name: "Tokyo",
    country: "Japan"
})
.then(function(docRef) {
    console.log("Document written with ID: ", docRef.id);
})
.catch(function(error) {
    console.error("Error adding document: ", error);
});

您可以获取添加成功的引用。在你的情况下:

this.albumCollection.add(newAlbum).then(function(ref) {console.log(ref.id});

关于javascript - Angular/Firestore - 获取由 'add' 方法创建的 ID 以用于路由器导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46646921/

相关文章:

javascript - 只使用一次 Angular Directive(指令)

javascript - 如何使用API​​获取国家、州、地区

javascript - 在 Ionic3 中订阅提供程序后,Console.log 显示为未定义

javascript - Angular 2 - 无法实例化循环依赖

node.js - Firebase Cloud Functions 获取更新文档详细信息

android - Firestore 忽略对象中的空值

javascript - 纹理是将音频数据传输到 GLSL 的唯一方法吗?

javascript - 方向问题 : rtl CSS property

javascript - 将数据传递给动态创建的 Angular 模块和组件

安卓/ Kotlin : How to get a DocumentReference to a document in a sub-collection in Firestore?