2016-02-23 8 views
0

Так что мой вопрос довольно прост, но потому что я не уверен, что это даже возможно.Есть ли способ манипулировать данными из запроса в Firebase

У меня есть только «MyFirstName» как мой ref Data; У меня нет ключа. Я также не хочу получать ключ от запроса, так как это потребует от меня перехода к данным KeyValue. Но прежде чем получить значение, мне нужно получить значение моментального снимка.

В 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() <--- 

В базовых знаниях запрос - это всего лишь запрос. Вы ничего не можете с этим поделать. Я просто хочу знать, если это возможно.

ответ

0

Nope. Вы должны смотреть за результатами и обновлять каждый из них на стороне клиента:

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. Ну, Query - это просто Query. Не могу надеяться слишком много. – Aizen

+0

В целом: если в документации упоминается то, что вы пытаетесь сделать, разумное предположение, что вам придется подумать о другом способе достижения своей цели. –