#How to get data and execution status from cloud function to client

13 messages · Page 1 of 1 (latest)

zenith mural
#

Hi, I’m trying to use the new cloud function by getting certain data back to the client from the execution, including the execution status, but somehow I’m getting an empty response. I would appreciate any help.

rigid bone
#
  1. When you're using async execution, then you won't get the result from the createExecution function. to get the results right away set xasync to false
  2. You can use the getExecution function to get the function execution status and results, for that you'll need to use the information you got from the createExecution function.

Notice: You won't get any results from the getExecution function if the current user is not logged in, as no one will have permission to read the function status.

zenith mural
#

Thanks, as always.
Let me try it ( I have a concern when you said getExecution does that mean I have to pass the execution id wich I need to get every time from the console? )

rigid bone
#

Yes,

#

But if you would change the xasync to false then you'll get the results when the function ended

zenith mural
#

Going over to the console each time is more stressful, especially when the app is released.
I tried the previous one, just switched xasync to false and voila, I got those data.
But do you know why I couldn't get the default values that are mentioned in the docs while I was setting xasync to true?

rigid bone
#

This is an example of what you should get when running the function in async

{
    "$id": "SomeID",
    "$createdAt": "2023-09-12T16:50:31.798+00:00",
    "$updatedAt": "2023-09-12T16:50:31.798+00:00",
    "$permissions": [
        "read(\"user:SomeID\")"
    ],
    "functionId": "SomeID",
    "trigger": "http",
    "status": "waiting",
    "requestMethod": "GET",
    "requestPath": "\/",
    "requestHeaders": [],
    "responseStatusCode": 0,
    "responseBody": "",
    "responseHeaders": [],
    "logs": "",
    "errors": "",
    "duration": 0
}
#

What are you getting when you dumping the whole object

zenith mural
#

false

{$id: 6500999a17d816914c9b, $createdAt: 2023-09-12T17:02:19.537+00:00, $updatedAt: 2023-09-12T17:02:19.537+00:00, $permissions: [read("user:646e517c33abdc84e711")], functionId: 64ff1e03053ba3ee0ee9, trigger: http, status: completed, requestMethod: POST, requestPath: /, requestHeaders: [], responseStatusCode: 200, responseBody: Success, responseHeaders: [{name: x-powered-by, value: Dart with package:shelf}, {name: date, value: Tue, 12 Sep 2023 17:02:19 GMT}, {name: content-length, value: 13}, {name: x-frame-options, value: SAMEORIGIN}, {name: content-type, value: text/plain; charset=utf-8}, {name: x-xss-protection, value: 1; mode=block}, {name: x-content-type-options, value: nosniff}], logs: , errors: , duration: 0.9277000427246094}
rigid bone
#

Both look like xasync false,

#

Can you double check

zenith mural
#

My bad this one is true:

{$id: 6500990a4c82c383df20, $createdAt: 2023-09-12T16:59:54.313+00:00, $updatedAt: 2023-09-12T16:59:54.313+00:00, $permissions: [read("user:646e517c33abdc84e711")], functionId: 64ff1e03053ba3ee0ee9, trigger: http, status: , requestMethod: POST, requestPath: /, requestHeaders: [], responseStatusCode: , responseBody: , responseHeaders: [], logs: , errors: , duration: 0.0}
rigid bone
#

It's interesting that it's empty
But you do get the functionId back that you can use with the getExecution one.