Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取firestore文档的新id以将其添加到文档本身_Javascript_Firebase_Google Cloud Firestore_Angularfire2 - Fatal编程技术网

Javascript 获取firestore文档的新id以将其添加到文档本身

Javascript 获取firestore文档的新id以将其添加到文档本身,javascript,firebase,google-cloud-firestore,angularfire2,Javascript,Firebase,Google Cloud Firestore,Angularfire2,根据文档,应该可以获取尚未创建的firestore文档的id,将其添加到要保存的对象中,然后按如下方式保存: // Add a new document with a generated id. var newCityRef = db.collection("cities").doc(); // later... newCityRef.set(data); 在我的应用程序中,我使用以下代码遵循此模式: async createNewProject(projectObject : Pro

根据文档,应该可以获取尚未创建的firestore文档的id,将其添加到要保存的对象中,然后按如下方式保存:

// Add a new document with a generated id.
var newCityRef = db.collection("cities").doc();

// later...
newCityRef.set(data);
在我的应用程序中,我使用以下代码遵循此模式:

   async createNewProject(projectObject : Project) : Promise<boolean> {
      let doc =  this.firestore.collection("projects").doc();
      projectObject.id = doc.ref.id;
      try {
      await doc.set(projectObject);
      } catch(err) {
        console.error(err);
        return false;
      }
      return true;
   } 
async createNewProject(projectObject:Project):Promise{
让doc=this.firestore.collection(“projects”).doc();
projectObject.id=doc.ref.id;
试一试{
等待单据集(projectObject);
}捕捉(错误){
控制台错误(err);
返回false;
}
返回true;
} 
但当它运行时,控制台中出现错误:

FirebaseError:函数CollectionReference.doc()要求其第一个参数的类型为非空字符串,但它是:未定义

有人能解释一下吗?我看到她身边的其他人引用了这个方法(使用没有参数的doc方法作为问题的解决方案,但其他人看到了这个错误。这是API的角度实现上的某种API,还是firebase方面的问题(或者我做错了什么?)

该方法返回一个属性,该属性没有
ref
属性,但有一个
id
属性。因此,您需要执行以下操作:

projectObject.id = doc.id;
而不是

projectObject.id = doc.ref.id;
该方法返回一个,它没有
ref
属性,但有一个
id
属性。因此,您需要执行以下操作:

projectObject.id = doc.id;
而不是

projectObject.id = doc.ref.id;

你能展示一下
这个.firestore
是如何初始化的吗?你能展示一下
这个.firestore
是如何初始化的吗?@user1023110你好,你有机会看看提议的答案吗?@user1023110你好,你有机会看看提议的答案吗?