android - 如何从 Android 应用程序在 Firestore 中上传数据离线数据?
问题描述
我正在尝试在我的 Firestore 中每 30 秒上传一次 GPS 数据。即使互联网关闭,我也想存储 GPS 数据,并在连接恢复后将数据推送到 Firestore。我什至启用了离线持久性
if (upload_count == 30000) {
NMEA.GPSPosition position = new NMEA.GPSPosition();
GeoPoint geoPoint = new GeoPoint(position.lat, position.lon);
Map<String, Object> data = new HashMap<>();
data.put(CAR_ID, "ST***3");
data.put(TRIP_ID, "****");
data.put(ServerTimeStamp, FieldValue.serverTimestamp());
data.put(ELEVATION, position.altitude);
data.put(GEOPOINT, geoPoint);
data.put(SPEED, position.velocity);
data.put(GPS_LOCKSTATUS, position.quality);
data.put(GPS_SATELLITE_INVIEW, position.Satellites_In_View);
data.put(TERRAIN_BUMP_COUNT, "None");
data.put(BATTERY_SOC, BitwiseOperation.SOC);
data.put(CHARGER_CONNECTED, BitwiseOperation.Charger_switch);
data.put(AC_STATUS, RPI_UC.CoolingState);
data.put(GPSDate, position.day);
data.put(GPSTime, position.time);
FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
.setPersistenceEnabled(true)
.build();
db.setFirestoreSettings(settings);
db.collection("NewGPSData").document().set(data)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(getApplicationContext(),"Data Uploaded in 30 sec",Toast.LENGTH_SHORT).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(), "Error!", Toast.LENGTH_SHORT).show();
}
});
upload_count = 0;
这就是我在循环中所做的。但是我的数据中看不到我的离线数据。我是否还需要做其他事情
解决方案
推荐阅读
- nosql - 多对多与 Azure Cosmos DB 和 Entity Framemewok Core CosmosDB
- r - 将数据框转换为R中的因子
- artificial-intelligence - 缓存可以用于 alpha-beta 搜索算法吗?
- r - 当用户不在此选项卡中时,隐藏闪亮应用程序中的选项卡。或者停用它
- android - ViewPager2 自动滚动直到适配器 itemCount 结束
- function - 关于 lambda 表达式作为参数的问题
- powerbi - Dax 相关函数返回全零列
- postgresql - 与不包含任何记录的表的内部联接失败?
- c - 当我传递太多参数时,为什么我没有收到错误?
- jquery - 尝试在单击 Jquery 时切换样式 CSS 链接“href”