Arduino从firebase消耗大量数据
我正在从事Arduino firebase家庭自动化项目。 现在,Firebase数据通过移动应用程序更改,Arduino Esp8266模型从Firebase读取数据。所以每次在循环中它调用Arduino从firebase消耗大量数据,firebase,arduino,firebase-authentication,arduino-esp8266,Firebase,Arduino,Firebase Authentication,Arduino Esp8266,我正在从事Arduino firebase家庭自动化项目。 现在,Firebase数据通过移动应用程序更改,Arduino Esp8266模型从Firebase读取数据。所以每次在循环中它调用 FirebaseObject firebaseObject=Firebase.get(path_command); 它不断地消耗数据。 所以我的问题是,只有在firebase服务器上更改数据时,才有办法获取数据吗? 我已经尝试了下面的代码,但它在设备上崩溃 if(Firebase.available(
FirebaseObject firebaseObject=Firebase.get(path_command);
它不断地消耗数据。
所以我的问题是,只有在firebase服务器上更改数据时,才有办法获取数据吗?
我已经尝试了下面的代码,但它在设备上崩溃
if(Firebase.available())
如果有更好的解决方案,请指导我,谢谢。我们已经找到了大量数据使用的解决方案。 之前,我们使用下面的代码获取所有json数组
FirebaseObject firebaseObject=Firebase.get(path_command);
它消耗几个字节或Kb的数据。
而现在我们首先检查的是额外标志对数据所做的任何更改
版本这是渐进的。
我们将它存储在每个节点级别的数据库中,每次数据更新时,我们都需要通过递增来更改它。
现在我们需要在获得所有json数组之前检查版本,如下所示
int version =Firebase.getInt(version_path);
if(version!=previosVersion)
FirebaseObject firebaseObject=Firebase.get(path_command);
。如果我们得到的是版本差异,那么我们只需要得到json对象。
在此之前,在一个小时内,Arduino每小时消耗大约3到5 MB,现在它每小时消耗700到800 KB。我们仍然在寻找最佳的优化。
谢谢。使用此函数
Firebase.available()
返回布尔值(true或false)。如果返回true,则表示数据库中发生了某种数据更改,因此您可以检索它 但只有在此函数之后调用上述函数,此函数才有效:
Firebase.stream("path u wish to monitor changes");
有关更多信息,请阅读的文档
Firebase.stream("path u wish to monitor changes");