如何获取自动生成的Firebase节点密钥?

3

image

在我的安卓项目中,我想要更新我的状态,但是我无法获取我想要更新的自动键。

这是我在项目中使用的代码:

String key = mGroupRef.child("users").push().getKey();
System.out.println("++key_____" +key);

要更新特定节点,您可能需要首先发出查询。您如何知道要更新哪个节点? - Frank van Puffelen
抱歉先生,我想更新状态节点,但是我没有得到自动生成的密钥。 - Shameem Ahsan
您想要更新哪个状态节点?我假设每个子节点都有一个状态,那么您(作为人类)如何知道要更新哪个状态?您知道它的键吗?您知道地址吗?还是您想要更改所有具有“status=new”的节点的状态?这些问题的答案决定了您需要什么代码。 - Frank van Puffelen
我是说按键,不管怎样我得到了答案,感谢您宝贵的支持。 - Shameem Ahsan
1个回答

3

这可能会有所帮助。

创建一个模型 class

public class Model {

public String uid;

public String getUid() {
    return uid;
}

public void setUid(String uid) {
    this.uid = uid;
}

}

保存状态

 ArrayList<Model>list=new ArrayList<Model>();
    Save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Model model = new Model();
            Firebase firebase=new Firebase("your firebase url");
            String uid = firebase.child("order").push().getKey();
            model.setUid(uid);
            list.add(model);
            FirebaseDatabase.getInstance().getReference().child("order").child(uid).child("status").setValue(value);
            Log.i("uid", uid);

        }
    });

更新 状态

 update.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            FirebaseDatabase.getInstance().getReference().child("order").child(list.get(position).getUid()).child("status").setValue(updated value);
        }
    });

我不明白这个答案是如何帮助你的。正如@Frank van Puffelen所建议的,您需要预先知道要更新状态的节点是哪个(因为所有节点都将具有状态键)。 - Sumit Jha
我将该uid存储到了一个模型类中,并使用该uid位置更改了状态。 - Shameem Ahsan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接