【问题标题】:How to get my automated generated firebase node key?如何获取我的自动生成的 Firebase 节点密钥?
【发布时间】:2017-09-20 07:17:05
【问题描述】:

在我的 android 项目中,我想更新我的状态,但我无法获得我想更新的自动密钥。

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

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

【问题讨论】:

  • 要更新特定节点,您可能必须首先触发查询。你怎么知道你要更新哪个节点?
  • 对不起先生,我想更新状态节点,但我没有得到自动生成的密钥
  • 您要更新什么状态节点?我假设每个孩子都有一个状态,那么你(作为一个人类)如何知道你想要更新什么状态?你知道它的钥匙吗?你知道地址吗?还是要更改所有具有status=new 的节点的状态?这些问题的答案决定了您需要什么代码。
  • 我的意思是按键,任何方式得到我的答案,感谢您的宝贵支持

标签: android json firebase firebase-realtime-database


【解决方案1】:

这可能会有所帮助。

创建模型class

public class Model {

public String uid;

public String getUid() {
    return uid;
}

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

}

保存status

 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);

        }
    });

更新status

 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 所建议的那样,您需要事先知道要更新其状态的节点(因为所有节点都将具有状态键)。
  • 我将此 uid 存储到模型类中,并使用此 uid 位置更改了状态
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 2013-09-01
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
相关资源
最近更新 更多