【问题标题】:Is there a way to Manipulate data from a Query in Firebase有没有办法从 Firebase 中的查询中操作数据
【发布时间】:2016-02-23 13:38:32
【问题描述】:

所以我的问题很简单,但因为我不确定它是否可能。

我只有“MyFirstName”作为我的参考数据;我没有钥匙。 我也不想从查询中获取密钥,因为这也需要我导航到 KeyValue 数据。但在获取值之前,我需要获取 Snapshot 值。

在 Firebase 我们有这些数据

MyData{
  KeyValue   {
        Name : MyFirstName
        LastName : MyLastName


  }

  KeyValue2 {
        Name : MyFirstName2
        LastName : MyLastName2


  }
}

所以在 Firebase 参考中。即指向 MyData ,我们可以这样做。

ref.OrderByChild("Name").equalsTo("MyFirstName");

现在返回将是一个查询。是否可以从中调用 put、push 甚至 setValue?

现在由于 put、push、setvalue 不是 Query 的成员。这是不可能的。

ref.OrderByChild("Name").equalsTo("MyFirstName").put() <---

在基础知识中,查询只是一个查询。你真的无能为力。我只是想知道有没有可能。

【问题讨论】:

    标签: java android firebase


    【解决方案1】:

    不。您必须查看结果并在客户端更新每个结果:

    ref.orderByChild("Name").equalTo("MyFirstName").addListenerForSingleValueEvent(new ValueEventListener() {
      public void onDataChange(DataSnapshot snapshot) {
        for (DataSnapshot item: snapshot.getChildren()) {
          item.child("Name").getRef().setValue("Aizen");
        }
      }
      public void onCancelled(FirebaseError firebaseError) {
      }
    });
    

    有关查询的更多信息,请参阅retrieving data。有关写入数据的更多信息,请参阅saving data

    【讨论】:

    • 再次感谢弗兰克。那么查询就是查询。不能抱太大希望。
    • 一般来说:如果文档中提到了您正在尝试做的事情,这是一个合理的假设,您必须考虑另一种方法来实现您的目标。
    猜你喜欢
    • 1970-01-01
    • 2023-01-20
    • 2017-12-15
    • 2020-12-19
    • 1970-01-01
    • 2015-01-26
    • 2016-01-09
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多