java - Google Cloud Firestore 触发数据库更改 BackgroundFunctions 未正确解析
问题描述
我正在尝试解析来自在数据库发生更改时运行的 Firestore 触发器的响应。我正在关注此文档:https ://cloud.google.com/functions/docs/calling/cloud-firestore 。在这种情况下,只是任何新条目,它位于“值”属性之下。我尝试使用 BackgroundFunction,因为 DocumentEventData 包含该对象中的所有字段,但这会引发日期序列化错误。
public class myFunction implements BackgroundFunction<DocumentEventData> {
private static final Gson gson = new Gson();
@Override
public void accept(DocumentEventData payload, Context context) throws Exception {
System.out.println("Event Received: " + payload);
}
}
我收到以下错误:
Failed to execute com.ford.avllc.taas.statecoordinator.StateChangeProcessor
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
Expected BEGIN_OBJECT but was STRING at path $.value.createTime
有没有办法通过 BackgroundFunction 类型解析它,而不必使用具有特定属性的 ObjectMapper?
我这么说是因为我正在做的解决方法是使用带有 RawBackgroundFunction 的对象映射器,它返回一个字符串,然后我通过 ObjectMapper 将其转换为 DocumentEventData。
编辑:具有讽刺意味的是,逐字逐句地遵循 Google 的文档会导致使用 GSON 得到相同的结果。
解决方案
推荐阅读
- ruby - 如何指定类型参数
- azure-devops - 具有乘数变量的多配置部署组作业?
- kubernetes - 使 RabbitMQ 持久/持久队列在 Kubernetes pod 重启后存活
- java - 断言主页标题
- asp.net-core - @Html.ActionLink 链接的 id 不起作用
- c# - 错误类 (FluentValidation) 安装失败
- django - 为什么从管理页面的多选中删除选定的值?
- heroku - 更改 Heroku 服务器
- r - 汇总不同聚合级别的数据 - R 和 tidyverse
- python - 使用 scipy.optimize 的 Python 约束非线性优化无法找到最佳解决方案