Skip to content
This repository was archived by the owner on Apr 14, 2020. It is now read-only.
This repository was archived by the owner on Apr 14, 2020. It is now read-only.

Error on Post request with GeoPoint property #14

@thomaslecoeur

Description

@thomaslecoeur

Hi! Thanks for that good connector.

There's an issue on posting an instance of a model that contains a GeoPoint property. Example:

{
  "name": "string",
  "capacity": 0,
  "description": "string",
  "location": {
    "lat": 0,
    "lng": 0
  }
}

Posting this exact data parameter on the Post request results in this 500 code error:

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "Cannot encode type ([object Object]) to a Firestore Value",
    "stack": "Error: Cannot encode type ([object Object]) to a Firestore Value\n    at Function.encodeValue (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/@google-cloud/firestore/src/document.js:672:11)\n    at Function.encodeFields (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/@google-cloud/firestore/src/document.js:544:36)\n    at WriteBatch.set (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/@google-cloud/firestore/src/write-batch.js:257:35)\n    at DocumentReference.set (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/@google-cloud/firestore/src/reference.js:416:8)\n    at CollectionReference.add (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/@google-cloud/firestore/src/reference.js:1830:24)\n    at Firestore.create (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-connector-firestore/lib/firestore.js:61:29)\n    at invokeConnectorMethod (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/dao.js:169:21)\n    at /Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/dao.js:472:11\n    at doNotify (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at doNotify (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at doNotify (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at doNotify (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at Function.ObserverMixin._notifyBaseObservers (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:178:5)\n    at Function.ObserverMixin.notifyObserversOf (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:153:8)\n    at Function.ObserverMixin._notifyBaseObservers (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:176:15)\n    at Function.ObserverMixin.notifyObserversOf (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/observer.js:153:8)"
  }
}

Another error by changing latto latitude and lng to longitude in the data parameter:

{
  "error": {
    "statusCode": 500,
    "name": "AssertionError",
    "message": "lat must be a number when creating a GeoPoint",
    "actual": false,
    "expected": true,
    "operator": "==",
    "generatedMessage": false,
    "stack": "AssertionError: lat must be a number when creating a GeoPoint\n    at new GeoPoint (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/geo.js:198:3)\n    at GeoPoint (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/geo.js:166:12)\n    at ModelConstructor.set [as location] (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/model-builder.js:606:81)\n    at ModelConstructor.ModelBaseClass._initProperties (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/model.js:202:17)\n    at ModelConstructor.ModelBaseClass (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/model.js:60:8)\n    at ModelConstructor (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/model-builder.js:196:22)\n    at ModelConstructor (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/model-builder.js:196:22)\n    at new ModelConstructor (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/model-builder.js:196:22)\n    at Function.DataAccessObject.create (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-datasource-juggler/lib/dao.js:359:13)\n    at SharedMethod.invoke (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/strong-remoting/lib/shared-method.js:270:25)\n    at HttpContext.invoke (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/strong-remoting/lib/http-context.js:297:12)\n    at phaseInvoke (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/strong-remoting/lib/remote-objects.js:677:9)\n    at runHandler (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-phase/lib/phase.js:135:5)\n    at iterate (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-phase/node_modules/async/lib/async.js:146:13)\n    at Object.async.eachSeries (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-phase/node_modules/async/lib/async.js:162:9)\n    at runHandlers (/Users/thomaslecoeur/Projets/Pijam/pijam-proto-api/node_modules/loopback-phase/lib/phase.js:144:13)"
  }
}

Using "loopback-connector-firestore": "^1.0.5" and "loopback": "^3.0.0"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions