2016-07-29 83 views
14

只读激活,以提高浏览器性能火力地堡:只读和非实时模式下激活,以提高浏览器性能

消息在我的项目中弹出状态,我无法&非实时模式删除节点以及

而且我读这https://groups.google.com/forum/#!topic/firebase-talk/qLxZCI8i47s

其中规定:

如果你在你的火力地堡很多节点(说千),我们需要为每个节点创建和现代浏览器只是有多少可以DOM元素添加到页面

限制的新元素

它说:

要解决此问题,在您的火力地堡的根源不加载你的火力地堡仪表盘,而是加载它降低下来的层次

我不明白是什么意味着

如何返回到我的实时仪表板?

回答

15

当它检测到它从数据库中下载了太多节点时,Firebase控制台将停止使用实时模式并切换到只读模式。在这种模式下,浏览器所需的工作量较少,因此浏览器更有可能保持高性能。

要回到实时模式,您必须转到节点较少的位置。所以说,你开始加载在根数据库,这意味着“伪地址栏”的数据树的顶部会说:

https://<your-project>.firebaseio.com/ 

然后会显示物品的清单。现在点击该伪地址栏中的网址,并将其更改为:

https://<your-project>.firebaseio.com/<one-of-your-keys> 

和命中进入。数据树将只加载从one-of-your-keys开始的节点,并且可能会再次切换到实时模式。

+6

但我怎么能删除有大量儿童的高级别节点,从浏览器?由于某种原因,甚至在事务中使用对一个mutableData.setValue(null)的调用来编程删除高级节点,也停止了为我删除该节点...该方法早些时候工作了 –

+4

好吧,对不起,它看起来像编程删除工作对我来说,只需要几秒钟就可以在浏览器中体现出来....所以结论:对于具有较大nr的节点。的孩子我只能以编程方式删除,而不是从浏览器 –

+2

@dangling_refrenz稍晚,但实际上可以删除浏览器中的高级节点。你可以在下面查看我的答案。 – Dallas

1

我有同样的问题......我有点惊讶,因为虽然Firebase可以轻松扩展以支持海量数据(例如百万用户等)。

我有一个包含80000个子节点的节点(每个对象都有自己的push-id),我无法删除或执行任何操作,因为实时时间在Firebase控制台中不起作用。

我认为uDate公司的唯一途径或删除它是通过Java代码:(

+1

它与Firebase的可扩展性无关,只是它们限制了大量节点的浏览器编辑 – interrupt

0

多次试图加载特定按键可以讨厌做的数据。有一个Python库,可以做到这一点的你很容易。

http://ozgur.github.io/python-firebase/

我需要删除大量钥匙帮我做,在一气呵成。

+0

总是欢迎链接到潜在的解决方案,但请为将来的访问者添加一些详细信息,以防链接不再可用。 –

2

firebase中的每个节点键都是一个链接,您可以在新选项卡中打开一个子节点,然后编辑该子节点及其子节点。

  1. 右键单击要编辑或删除

  2. 在新标签

  3. 编辑在新的选项卡中的子节点中打开链接的子节点上

28

如果你想删除一个高级节点,当它被激活时,我建议这样做。

打开文本编辑器并输入{ }。将此文件保存为“blankJSON.json”。

转到您想要删除的高级节点并选择它,一旦它打开并显示需要删除的所有节点,请选择右上方的三个条并选择“导入JSON”(它会首先要安全“导出JSON”如果你没有备份,万一你在这里犯了错误)。导入先前创建的标题为“blankJSON”的JSON文件。

这将删除里面的所有数据。

再一次,我强烈建议您在做这件事之前进行备份,做出备份非常容易,而且比您想象的将上述blankJSON上传到错误的节点,然后擦除一堆重要数据。

+2

智能解决方案,谢谢 – Kalpesh

+1

你好:)谢谢 – yarin

+1

智能和简单的解决方案! – Himanshu

0

你可以做的是有一个onclicklistener和调用remove值法的DatabaseReference,像这样:

mCart.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      mDatabaseReference.removeValue(); 
     } 
    });