Firebase实时数据库验证规则

时间:2018-12-26 20:31:03

标签: java android firebase firebase-realtime-database

在实时数据库中,我有一个子节点bus_id,其节点为bus_nobus_idbus_timecreationDate作为时间戳。我已经使用orderBychild(timestamp)对数据进行排序。如果规则bus_id不存在bus_id,我还实现了创建/添加!data.exists && newData.exists()

现在,我要实现该目标,如果子类bus_id是在之前10分钟创建的,则进行更新;如果子类child是在其时间戳有10分钟的时间戳之前,请更新ref.child(bus_id).setValue(busInfo); bus_id。

我将通过int main() { std::string inp; int counter = 0; int a = 0, i = 0, e = 0, o = 0, u = 0; std::cout << "Enter the string: "; std::cin >> inp; for (int i = 0; i < inp.length(); i++) { switch(inp[i]) { case 'A': case 'a': counter++; a++; break; case 'E': case 'e': counter++; e++; break; case 'i': case 'I': counter++; i++; break; case 'u': case 'U': counter++; u++; break; case 'o': case 'O': counter++; o++; break; } } std::cout << "There were " << counter << " vowels in total." << std::endl; std::cout << "There were " << a << " As, " << i << " Is, " << o << " Os, " << u << " Us, and " << e << " Es." << std::endl; return 0; }

更新数据

那么是否存在使用三元运算符使上述问题无效的查询?

1 个答案:

答案 0 :(得分:1)

从您的问题中我可以得出的结论是,如果您要更新bus_id子项(如果已创建10分钟),则要对其进行更新,否则,请更新该bus_id项,它是在10分钟前创建的。

我可以建议您两种方法,首先是为每个timeCreated添加一个名称为bus_id的新时间戳,然后可以检索它们的值,并检查它是否已使用10分钟是否。

这可以让您更新早10分钟的bus_id

另一种方法是根据您的需要更改Firebase规则,如@JeremyW在评论中所述。

一些有用的资源是this video,您应该跳到时间 22:55

Firebase docs regarding this.this stack overflow question