You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android IoT应用:如何获取AWS DynamoDB中更新的传感器数据?

问题分析与解决方案

一、先解决查询返回旧数据的核心问题

你的问题本质是Amplify DataStore的本地缓存机制导致的——DataStore默认优先读取本地缓存数据,而云端DynamoDB更新后,本地缓存没有及时同步。

快速修复:强制从云端拉取最新数据

修改查询代码,添加选项跳过本地缓存,直接查询云端:

public void readById() {
    Amplify.DataStore.query(
            myModel.class,
            Where.sorted(myModel.ID.descending()).paginated(Page.startingAt(0).withLimit(1)),
            // 强制从云端获取最新数据
            QueryOptions.defaults().skipCache(),
            items -> {
                while (items.hasNext()) {
                    mModel item = items.next();
                    retrievedId = item.getId();
                    Log.i("Amplify", "Id " + item.getId());
                }
            },
            failure -> Log.e("Amplify", "Could not query DataStore", failure)
    );
}

或者在查询前先同步缓存,确保本地与云端一致:

// 先同步缓存再执行查询
Amplify.DataStore.sync(
    () -> readById(),
    error -> Log.e("Amplify", "Sync failed", error)
);

二、长期实时同步方案(适合IoT场景)

作为AWS新手,推荐两种简单易上手的方案:

方案1:Amplify DataStore自动同步(最省心)

DataStore本身支持云端与本地的自动同步,只需两步配置:

  • 用Amplify CLI更新API:执行amplify update api,选择GraphQL API,启用DataStore同步功能;
  • Android端初始化时启动同步:
Amplify.addPlugin(new AWSDataStorePlugin());
Amplify.configure(getApplicationContext());
// 启动自动同步
Amplify.DataStore.start(
    () -> Log.i("Amplify", "DataStore started"),
    error -> Log.e("Amplify", "DataStore start failed", error)
);

配置完成后,云端DynamoDB的数据更新会自动同步到本地缓存,后续查询直接拿最新数据,无需手动处理。

方案2:IoT Device Shadow(适合单设备状态同步)

如果你的场景仅需同步单台ESP32的传感器数据,Device Shadow是更轻量的选择:

  • 让ESP32将传感器数据更新到自身的Device Shadow中;
  • Android端通过Amplify IoT SDK订阅Shadow的更新事件,实时获取最新数据。
    这种方式无需处理DynamoDB的复杂同步逻辑,直接针对设备状态做实时追踪,适配IoT设备的单一状态场景。

新手慎选的方案

DynamoDB Stream + Lambda:需要编写Lambda函数处理流事件,再通知Android端,步骤繁琐、调试复杂,除非你有云端数据聚合、告警等复杂业务需求,否则不建议优先尝试。

总结

  1. 先用skipCache()或sync()解决当前查询旧数据的问题;
  2. 长期方案优先选Amplify DataStore自动同步,适配已有Amplify技术栈;
  3. 单设备状态同步场景,选IoT Device Shadow更轻量高效。

内容的提问来源于stack exchange,提问作者user15849197

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:45:21