当前位置: 首页 > 知识库问答 >
问题:

遍历Firebase数据库

堵才哲
2023-03-14

我要做的是遍历Firebase数据库,看看是否有某个值,如果有,则什么也不做,如果没有,则向节点添加另一个值。

我的Firebase收藏是这样的:

appname{
Collection{
    key : value
    key : value
    key : value
reference.child("strings").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    for(DataSnapshot n : dataSnapshot.getChildren()){
        if (n == inputedString) {
            break;
        }
    ref.child("strings").setValue(inputedString);
    }
}

同样,我不确定这是不是正确的代码,但它是类似的。我用这个答案作为帮助,但不能根据我的需要调整它:Firebase/Android如何获得子键和值?

还有一个问题,我得到的是,我的数据库是无限填一遍又一遍。

共有1个答案

澹台浩广
2023-03-14

您的代码正在有效地监听它正在进行的更改。每次对setValue的调用都将触发对传递给AddValueEventListener的对象的另一次回调。如果希望只对每个子级迭代一次而不侦听更新,则使用AddListenerForSingleValueEvent而不是AddValueEventListener

 类似资料:
  • 问题内容: 我想知道是否有人可以帮助我创建一个while循环来遍历几个数据库,以便从两列的一个表中获取数据。这是我到目前为止所做的。什么都行不通,因为我不知道如何针对我从每个数据库查询的表来使select语句在每个数据库中正常工作(dbo.tbldoc) 问题答案: 我会考虑使用sp_MSForEachDB,这要容易得多… 编辑:

  • Array类实现了迭代器,可使用迭代器对数组进行遍历,如果是数字索引数组,还可以直接使用for循环进行遍历。 数字索引数组 for(int i = 0; i < array.count(); i++) { php::echo("key=%d, value=%s.\n", i, array[i].toCString()); } 迭代器 for(auto i = array.begin();

  • 问题内容: 我有一个Firebase资源,其中包含几个对象,我想使用Swift对其进行迭代。我期望的工作如下(根据Firebase文档) https://www.firebase.com/docs/ios- api/Classes/FDataSnapshot.html#//api/name/children 因此,看来Swift遍历Firebase返回的NSEnumerator对象存在问题。 非常

  • 问题内容: 我想知道是否有一个更好的方法来将此方法传递给该方法,或者在每次我想检查是否存在数字时将其写出更好。 例如: 我在这里先向您的帮助表示感谢! 问题答案: 您绝对应该将此逻辑封装到方法中。 多次重复相同的代码没有任何好处。 同样,如果将逻辑放在一种方法中并且它改变了,则只需在一个地方修改代码即可。 是否要使用第三方库是完全不同的决定。

  • 主要内容:遍历顺序,指定遍历顺序,修改数组元素值,外部循环使用,迭代多个数组NumPy 提供了一个 nditer 迭代器对象,它可以配合 for 循环完成对数组元素的遍历。 下面看一组示例,使用 arange() 函数创建一个 3*4 数组,并使用 nditer 生成迭代器对象。 示例1: 输出结果: 0 5 10 15 20 25 30 35 40 45 50 55 遍历顺序 在内存中,Numpy 数组提供了两种存储数据的方式,分别是 C-order(行优先顺序)与 F

  • 问题内容: 我有这个数组…如何打印每个文件路径和文件名?做这个的最好方式是什么? 问题答案: 使用无键循环 使用键循环 使用循环 是获取数组或对象快照的非常有用的功能。