geoFirestore - добавить новый документ с массивом в качестве одного из свойств данных документа - PullRequest
0 голосов
/ 27 апреля 2020

Когда я пытаюсь добавить новый документ в БД с помощью geoFirestore и пытаюсь установить одно из свойств как массив с DocumentReference (относится к расположению документа в базе данных Firestore), я получаю следующую ошибку:

FirebaseError: Функция DocumentReference.set() вызвана с неверными данными. Неподдерживаемое значение поля: пользовательский объект

Если я установил там пустой массив, его успех. Кстати, если я поставлю там строку или число, его работа тоже

Код инсерции:

await geocollection.add({
                        coordinates: new firebase.firestore.GeoPoint(latlng.lat, latlng.lng),
                        arrayOfRef: [newRef]
                     });

Я пытаюсь использовать Object.asset() для newRef, но получить тот же результат.

Спасибо за помощников.

1 Ответ

0 голосов
/ 27 апреля 2020

Таким образом, во многих случаях geofirestore минимально изменяет заданное вами do c, а затем передает его в Firestore. В этом случае похоже, что Firebase / Firestore выдает ошибку, а не geofirestore.

Я подозреваю, что проблема связана с используемой вами ссылкой. Если эта ссылка предоставлена ​​geofirestore, это не обязательно DocumentReference, который использует Firestore, это GeoDocumentReference. Вы, вероятно, захотите получить фактическое значение DocumentReference из свойства native :

await geocollection.add({
  coordinates: new firebase.firestore.GeoPoint(latlng.lat, latlng.lng),
  arrayOfRef: [newRef.native]
});

Дайте мне знать, если это поможет! Я также делаю несколько предположений относительно вашего кода, поэтому было бы здорово увидеть, что происходит до того, как вы вызовете метод add.

...