从Firestore中提取数据时,我将.toObject()接收到的数据映射到我的数据类中,即:
data class Img(var event_uid: String = "", var isVip: Boolean = false , var nombre: String = "", var url: String = "")
Run Code Online (Sandbox Code Playgroud)
但是,映射效果不佳。我isVip=>true在任务中收到了该字段,但是对象字段被映射为false(默认值)。
我究竟做错了什么?
编辑:我在Logcat中看到
W/Firestore: (0.6.6-dev) [zzevb]: No setter/field for isVip found on class ***.model.Img
Run Code Online (Sandbox Code Playgroud)
根据Kotlin Docu的说法:
如果属性的名称以is开头,则使用不同的名称映射规则:getter的名称将与属性名称相同,setter的名称将通过用set替换is获得。例如,对于属性
isOpen,将调用getter并将调用isOpen()settersetOpen()。此规则适用于任何类型的属性,而不仅限于Boolean。
也许有Kotlin问题的Firestore?
我正在使用Firebase函数。使用command部署到Firebase服务器时,工作正常firebase deploy --only functions。但是,我当然想在部署到服务器之前在本地测试我的功能。我看到运行firebase的结果是,本地“部署”的功能没有我在indext.ts中所做的最新更改-正在运行上次构建的版本,即index.js中的版本。
我的问题是,如何手动构建Firebase函数项目以使用最新更改在本地对其进行测试?firebase serve在本地部署项目之前是否应该自动构建项目?对我来说,这听起来像个虫子。
node.js firebase typescript google-cloud-functions firebase-cli
我想application.properties为每个环境定义不同的文件。在本地工作时,我想定义一个 H2 数据库。对于测试环境(Heroku),我有一个 MySQL 数据库配置。因此,我想为此类工作案例定义完全不同的文件。
目前我有application.properties本地海豚,并application-tst.properties在 Heroku 中使用。但是我不知道在部署时如何选择合适的。
我的目标是为在 Heroku 中运行的应用程序与在本地机器上运行的应用程序具有不同的配置。
在更新另一个相关实体后,我需要对实体执行更新。
我有两个实体:OrderEntity和CustomerOrderEntity,关系为 1:N。两者都有一个status领域。OrderEntitystatus 取决于所有孩子的 status 字段。因此,如果CustomerOrderEntity更新了一个,我需要重新计算它的新状态OrderEntity并坚持/更新它。
我已经实现了一个监听器:
public class CustomerOrderEntityEnventHandler {
private OrderService orderService;
@PostUpdate
public void handleAfterSave(CustomerOrderEntity customerOrder) {
OrderEntity order = customerOrder.getOrder();
OrderStatus newStatus = calculateNewStatus(order);
order.setStatus(newStatus);
}
//other methods and DI handler for orderService. The injection is fine.
}
Run Code Online (Sandbox Code Playgroud)
监听器被注解CustomerOrderEntity并被正确调用。但是,在该过程完成后,OrderEntity即使orderRepository.save()使用正确的新状态调用,仍保持旧状态。
我希望 orderEntity 能够更新为新状态。
更新:
我将实现更改为使用PostUpdateEventListener. 它被正确调用,但是,“其他”实体仍未更新。
public class CustomerOrderEntityUpdateEnventListener implements PostUpdateEventListener {
@Override
public void onPostUpdate(PostUpdateEvent event) …Run Code Online (Sandbox Code Playgroud) firebase ×2
android ×1
deployment ×1
firebase-cli ×1
heroku ×1
hibernate ×1
java ×1
jpa ×1
kotlin ×1
node.js ×1
spring ×1
spring-boot ×1
typescript ×1