Firebase实时数据库使用带时间前缀的推送ID,因此新对象总是按其创建时间戳排序。
如果Android和iOS应用程序上启用了脱机功能,如果用户禁用了自动时钟同步,SDK是否会:
2019年,巴西政府取消了夏令时,没有给运营商和互联网提供商适当的时间做好准备。因此,时钟被自动提前,由于时间戳不一致,导致巴西的几个分布式系统崩溃。这种现象被称为博尔索纳罗的臭虫。
绝望的是,因为他们不再收到客户的订单,他们关闭了自动时钟调整并手动设置,依靠移动设备工作的用户(如出租车司机、快递专业人员等)关闭了设备上的自动时钟更新,并在1小时内手动将街区转回。因此:
当用户脱机保存数据(时钟不正确)并在数小时后尝试与服务器同步时,该场景会出现问题。
由于Firebase实时数据库具有离线功能,推送ID按时间顺序排序,因此在这种非常特殊的情况下,是否有可能:
不准确的本地时钟可能会导致推送ID不准确,就时间顺序而言。如果您需要准确的时间进行排序,我不会过于依赖推送ID的排序。
您可能希望阅读有关时钟偏移的文档,以了解有关如何处理可能的时间差的更多信息:
而火力基地。数据库服务器值。时间戳更为准确,对于大多数读/写操作来说更为可取,它有时可以用于估计客户机相对于Firebase实时数据库服务器的时钟偏差。您可以将回调附加到位置/。info/serverTimeOffset获取Firebase实时数据库客户端添加到本地报告时间(以毫秒为单位的历元时间)以估计服务器时间的值(以毫秒为单位)。请注意,此偏移量的准确性可能会受到网络延迟的影响,因此主要用于发现大型数据(
DatabaseReference offsetRef = FirebaseDatabase.getInstance().getReference(".info/serverTimeOffset");
offsetRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
double offset = snapshot.getValue(Double.class);
double estimatedServerTimeMs = System.currentTimeMillis() + offset;
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Log.w(TAG, "Listener was cancelled");
}
});
问题内容: 我想知道,有没有办法更新键值? 让我们使用以下数据: 我的资料 我正在使用set()写入数据。现在,我希望用户对其进行编辑bookTitle,并且需要在两个地方都进行更改。我尝试使用update(),但似乎无法正常工作。我只能在bookTitle中编辑bookInfoNOT books。 移动不是一种选择,因为它会删除bookData。我也尝试使用push()进行编写,但是之后,由于我
我发现了两种可能的方法来在Firebase实时数据库(例如在聊天应用程序中)发生更改后交付通知: > 如本博文所述,可以对Firebase使用云功能。 我在这里还发现了另一种更简单的方法,只使用一个监听数据库变化的android服务。 在尝试实施其中一种方法之前,我想知道这两种方法的利弊,因为第二种方法似乎比第一种方法简单得多。
我浏览了所有的文档和这么多的博客,但没有得到答案。 问题是我有100个同时连接到Firebase实时数据库的初始免费配额。这意味着一次我的100个用户可以使用我的应用程序。使用应用程序后,除非用户不应用程序,否则仍然对该用户开放,因此同时没有其他用户可以访问。 所以我的问题是,如果我从数据库参考中删除侦听器,这也会关闭吗? 有了这个,我想实现的是,当User1得到他的搜索结果时,他/她将不再持有,
我在文档中看到Firebase实时数据库是加密的<但是有一些术语我不完全理解: Firebase服务使用HTTPS加密传输中的数据,并从逻辑上隔离客户数据。什么在逻辑上隔离了客户数据 平均值 “此外,几个Firebase服务还加密其静态数据:Firebase实时数据库Firebase测试实验室”有人能用外行的术语解释一下吗
我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire
我试图为某些设备生成密钥时出错。我能够在运行4.4.2的三星Galaxy Note上重现错误。 我创建了一个小应用程序,只能通过从Android开发者页面“生成新私钥”下的https://developer.android.com/training/articles/keystore.html逐行复制代码来生成密钥 错误似乎发生在kpg.generateKeyPair(),在Android Key