Firebase:setPersistenceEnabled(true)可防止数据可用

时间:2017-03-06 12:05:30

标签: android firebase firebase-realtime-database

在我的应用中,我有两个不同的活动,一个将数据(“建议”)存储到Firebase数据库:

DatabaseReference suggestRef = FirebaseDatabase.getInstance().getReference().child("suggestion").child(someID).push().child("name");
suggestRef.setValue(suggestion);

以及第二项活动,其中加载并显示其中一项建议供主持人接受或删除:

DatabaseReference suggestRef = FirebaseDatabase.getInstance().getReference().child("suggestion");
Query suggestQuery = suggestRef.limitToFirst(1);

suggestQuery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

    //...

    }

请注意,从数据库读取时,我正在访问我写入的父位置。这是因为“someID”可以是任何东西 - 因为可以为“someID”的任何值添加多个建议,我在那里通过push()添加随机子节点。这不是问题,我在onDataChange()回调中获取引用节点的子节点。

无论如何,写作肯定有效(通过数据库的Web视图进行检查),再次访问节点也是如此 - 只要我为数据库设置setPersistenceEnabled()。 / p>

如果我这样做,写作仍然有效,但随后阅读会在引用的位置返回一个空值。

在没有持久性的情况下再次运行应用程序会使数据可用 - 稍后使用持久性运行会使其再次无法使用。

我做错了什么?

0 个答案:

没有答案