iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Javascript】 FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: a custom object の対処法

Firestore のセキュリティールールで使用するテストオブジェクトの GeoPoint を下記のように設定するとエラーが発生していました🤔

const { GeoPoint } = require("@google-cloud/firestore");

function fieldMapData(fieldId) {
    return {
        id: fieldId,
        name: "霞ヶ浦",
        map: new GeoPoint(80, 150), // FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: a custom object
        prefectureName: "茨城県",
        imagePath: "https://homepages.cae.wisc.edu/~ece533/images/airplane.png",
        categoryId: "0"
    };
}

StackOverflowでもGeoPoint で同じような問題が発生している投稿が。

stackoverflow.com

どうやらconst { GeoPoint } = require("@google-cloud/firestore"); で宣言したGeoPointが原因でエラーが発生していたみたいで、下記のようにfirebase.firestoreでアクセスしたGeoPointクラスを使うことで解決することができました🚀

const firebase = require("@firebase/rules-unit-testing");

function fieldMapData(fieldId) {
    return {
        id: fieldId,
        name: "霞ヶ浦",
        map: new firebase.firestore.GeoPoint(80, 150),
        prefectureName: "茨城県",
        imagePath: "https://homepages.cae.wisc.edu/~ece533/images/airplane.png",
        categoryId: "0"
    };
}

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com