0

当我尝试使用 geoFirestore 将新文档添加到数据库并尝试使用 DocumentReference 将属性之一设置为数组时(指的是 Firestore 数据库中的文档位置),我收到以下错误:

FirebaseError:DocumentReference.set()使用无效数据调用的函数。不支持的字段值:自定义对象

如果我在那里设置一个空数组,它的成功。顺便说一句,如果我在那里设置一个字符串或数字它的工作太

插入代码:

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

我尝试使用Object.asset()newRef得到相同的结果。

感谢帮助者。

4

1 回答 1

0

因此,在很多情况下,只需对geofirestore您提供的文档进行最低限度的修改,然后将其传递给 Firestore。在这种情况下,看起来 Firebase/Firestore 正在抛出错误,而不是geofirestore.

我怀疑问题出在您使用的参考文献上。如果该引用由 提供geofirestore,则不一定是DocumentReferenceFirestore 使用的,它是GeoDocumentReference. 您可能希望DocumentReferencenative属性中获取实际值:

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

让我知道这是否有帮助!我还对您的代码做出了一些假设,因此在调用该add方法之前看到更多发生的事情会很棒。

于 2020-04-27T19:58:35.983 回答