我目前正在开发一个Android应用程序,其中我使用firebse作为DB。 我想选择一个特定的节点并设置它的密码,那么我该怎么办呢? 我使用了这段代码,但它为所选节点添加了另一个密码属性。 这是数据库结构,我想设置用户toto的密码值。
public void resetPassword(){
//setting connexion parameter
final Firebase ref = new Firebase("https://test.firebaseio.com/users");
Query query = ref.orderByChild("username").equalTo("toto");
Firebase statusRef =query.getRef().child("password");
statusRef.setValue("COMPLETED");
System.out.println("Hellooooo FBM ");
}
答案 0 :(得分:1)
您的query
还没有与该查询匹配的节点。要获得匹配的节点,您必须附加一个监听器(如documentation on reading data所示)。
一个简单的例子:
public void resetPassword(){
//setting connexion parameter
final Firebase ref = new Firebase("https://test.firebaseio.com/users");
Query query = ref.orderByChild("username").equalTo("toto");
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot user: snapshot.getChildren()) {
Firebase statusRef = user.child("password").getRef();
statusRef.setValue("COMPLETED");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "getUser:onCancelled", databaseError.toException());
}
});
}