当我重新启动移动设备或此 android/firebase 应用程序时,Firebase 离线数据库数据被清除?*

Posted

技术标签:

【中文标题】当我重新启动移动设备或此 android/firebase 应用程序时,Firebase 离线数据库数据被清除?*【英文标题】:Firebase Offline Database Data is Cleared when i restart Mobile Device or This android/firebase App ?* 【发布时间】:2016-12-08 06:25:35 【问题描述】:

我将此代码用于离线并使用 firebase 同步 android 应用程序中的数据。 当我重新启动移动设备或此 android/firebase 应用程序时,Firebase 离线数据库数据被清除?

    DatabaseReference scoresRef = FirebaseDatabase.getInstance().getReference("scores");
    scoresRef.keepSynced(true);

    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    final DatabaseReference myConnectionsRef = database.getReference("users/joe/connections");

// 存储我上次断开连接的时间戳(上次我在网上看到的时间) final DatabaseReference lastOnlineRef = database.getReference("/users/joe/lastOnline");

    final DatabaseReference connectedRef = database.getReference(".info/connected");
    connectedRef.addValueEventListener(new ValueEventListener() 



        @Override
        public void onDataChange(DataSnapshot snapshot) 
            boolean connected = snapshot.getValue(Boolean.class);
            if (connected) 

                // add this device to my connections list
                // this value could contain info about the device or a timestamp too
                DatabaseReference con = myConnectionsRef.push();
                con.setValue(Boolean.TRUE);

                // when this device disconnects, remove it
                con.onDisconnect().removeValue();

                // when I disconnect, update the last time I was seen online
                lastOnlineRef.onDisconnect().setValue(ServerValue.TIMESTAMP);


            
        

        @Override
        public void onCancelled(DatabaseError error) 
            System.err.println("Listener was cancelled at .info/connected");
        
    ); 

【问题讨论】:

您可能想了解 Firebase 的磁盘持久性,它(在本机移动设备上)将同步的数据持久保存到磁盘,以便在应用程序重新启动后仍然存在:firebase.google.com/docs/database/android/… 【参考方案1】:

***********在mFirebaseDatabase.getReference()*********之前写这段代码

     mFirebaseDatabase = FirebaseDatabase.getInstance();

    // Fire up data persistence to work offline.
    // It's used once in app (not in each activity).
    try 
        mFirebaseDatabase.setPersistenceEnabled(true);
     catch (DatabaseException e) 
        // Do anything
    

【讨论】:

以上是关于当我重新启动移动设备或此 android/firebase 应用程序时,Firebase 离线数据库数据被清除?*的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 c++ 从其他应用程序关闭设备启动时生成的错误消息框?

在android中重新启动应用程序时如何重新连接chromecast设备

Android 警报管理器在重新启动设备或从后台杀死应用程序后取消

启动logcat时出现意外错误。尝试重新选择设备。] EO

使用颤振在移动设备上缓存图像

Eclipse:警告:未知设备 API 版本