2016-02-23 39 views
0

所以我的问题很简单,但因为我不确定它是否可能。有没有办法在Firebase中处理来自查询的数据

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

在火力地堡,我们有这个数据

MyData{ 
    KeyValue { 
     Name : MyFirstName 
     LastName : MyLastName 


    } 

    KeyValue2 { 
     Name : MyFirstName2 
     LastName : MyLastName2 


    } 
} 

所以在火力地堡参考。这是指向MyData,我们可以做到这一点。

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

现在返回将是一个查询。是否可以从这些中调用put,push或setValue?

现在自put,push,setvalue不是Query的成员。这是不可能的。

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

在基础知识中,查询只是一个查询。你无法对此做任何事情。我只想知道这是否可能。

回答

0

没有。你必须查看结果和更新他们每个人的客户端:

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

+0

再次感谢Frank。那么查询只是查询。不能希望太多。 – Aizen

+0

一般来说:如果文档中提到了您正在尝试执行的操作,那么这是一个合理的假设,您必须考虑另一种方法来实现您的目标。 –

相关问题