Firebase 可调用函数在 Android SDK 中不返回 JSON 响应

Posted

技术标签:

【中文标题】Firebase 可调用函数在 Android SDK 中不返回 JSON 响应【英文标题】:Firebase callable function doesn't return JSON response in Android SDK 【发布时间】:2021-10-02 15:03:12 【问题描述】:

android 中的 Firebase 可调用函数没有返回 JSON 响应,而是返回 Hashmap<String, Object>,它无法转换为 JSONObject。

如何获取云函数返回的JSON对象?

例如我在云函数中返回这个 JSON,我需要这个 JSON 在 android 可调用函数中。

return (
    status: 'failed',
    message: 'No error (00)',
    data: 
);

【问题讨论】:

【参考方案1】:

您所观察到的只是可调用对象的工作方式。在 Android 上,您将看到与可调用函数返回的对象对齐的 HashMap。如果您需要,您可以将该 HashMap 转换为其他内容。客户端 SDK 不会为您执行此操作。您可以期望映射的键和值与返回对象的属性和值相匹配。只需使用其 toString 方法记录 HashMap 即可揭示这一点。

【讨论】:

为什么它不返回 JSONObject,因为可调用函数总是返回 JSON?我的业务逻辑是使用 JSON,将 Hashmap 转换为 JSON 很复杂。 这不是它的工作方式。如果你想要一个 JSONObject,你必须自己转换地图。人们基本上不再使用 JSONObject - 它是一个旧 API,并且根据 Android 的版本存在错误。我建议避免它。它并没有真正提供任何特别的东西。如果你想对可调用 SDK 提出建议,你应该在 GitHub 上这样做,但我认为他们不会做出这种改变。 github.com/firebase/firebase-android-sdk

以上是关于Firebase 可调用函数在 Android SDK 中不返回 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 可调用函数冷启动

如何在 Firebase 可调用云函数上引发错误?

使用可调用的 Firebase 云函数

Firebase 可调用函数 + CORS

使用 Firebase CLI shell 测试可调用的云函数

使用 Firebase 可调用函数时如何检索用户的身份验证数据?