首页 > 解决方案 > 如何从 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;

这就是我在循环中所做的。但是我的数据中看不到我的离线数据。我是否还需要做其他事情

标签: androidgoogle-cloud-firestoreoffline

解决方案


推荐阅读