Чтобы получить новый идентификатор для пожарного магазина, сделайте c, чтобы добавить его в сам документ - PullRequest
1 голос
/ 23 марта 2020

В соответствии с документацией здесь должна быть возможность получить идентификатор для еще не созданного документа пожарного депо, добавить в него объект для сохранения и затем сохранить его следующим образом:

// 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;
   } 

Когда он запускается, я получаю сообщение об ошибке в консоли:

FirebaseError: Функция CollectionReference.do c () требует, чтобы ее первый аргумент имел тип непустой строки, но это было: undefined

Кто-нибудь может пролить свет? Я видел, как другие люди ссылались на этот метод (используя метод do c без параметров в качестве решения проблемы, в то время как другие видят эту ошибку. Является ли это своего рода API в реализации Angular API, или проблема со стороны Firebase (или я сделал что-то не так?)

1 Ответ

0 голосов
/ 23 марта 2020

Метод doc() возвращает значение DocumentReference, которое не имеет свойства ref, но имеет свойство id. Поэтому вам нужно сделать:

projectObject.id = doc.id;

вместо

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