首页 > 解决方案 > Firebase按钮onClick,设置UID子

问题描述

我在使用 Firebase 时遇到问题!,我已经创建了注册和登录页面并且工作正常!。但我有一个问题。为什么我的按钮会创建一个新的“孩子”? 如何通过按钮单击识别用户在同一 UID 上放置按钮“onClick”?我想做什么,我不知道firebase 100%是如何工作的,谁能为我解释一下?我真的需要 {get} 点击按钮来识别数据库上的每个用户。我的页面按钮

主要活动

public class MainActivity extends AppCompatActivity {
private Button influenciador;
private Button marca;

private DatabaseReference mDatabase;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    influenciador = (Button) findViewById(R.id.BotaoSouInfluenciador);
    marca = (Button) findViewById(R.id.BotaoSouMarca);

    mDatabase = FirebaseDatabase.getInstance().getReference().child("Usuários");

    influenciador.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            mDatabase.child("Usuários").push().setValue("Pizza");
            openDIContrato();
        }
    });

    marca.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            mDatabase.child("Usuários").setValue("Burger");

            openMarcaContrato();
        }
    });
  }
public void openDIContrato() {
    Intent intent = new Intent(this, DIContrato.class);
    startActivity(intent);
  }

public void openMarcaContrato() {
    Intent intent = new Intent(this, MarcaContrato.class);
    startActivity(intent);
 }
}

用户类

public class Usuarios {

private String id;
private String email;
private String aniversario;
private String senha;
private String nome;
private String sexo;

public Usuarios() {
}

public void salvar(){
    DatabaseReference referenciaFirebase = ConfiguracaoFirebase.getFirebase();
    referenciaFirebase.child("Usuários").child(String.valueOf(getId())).setValue(this);
}

@Exclude

public Map<String, Object> toMap(){
    HashMap<String, Object> hashMapUsuario = new HashMap<>();
    hashMapUsuario.put("id", getId());
    hashMapUsuario.put("email", getEmail());
    hashMapUsuario.put("aniversario", getAniversario());
    hashMapUsuario.put("nome", getnome());
    hashMapUsuario.put("sexo", getSexo());

    return hashMapUsuario;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}

public String getnome() {
    return nome;
}

public void setnome(String nome) {
    this.nome = nome;
}

public String getAniversario() {
    return aniversario;
}

public void setAniversario(String aniversario) {
    this.aniversario = aniversario;
}

public String getSexo() {
    return sexo;
}

public void setSexo(String sexo) {
    this.sexo = sexo;
 }
}

标签: firebaseandroid-studiofirebase-realtime-database

解决方案


您没有使用对数据库的正确引用。从标题为“我想做的事情”的图像中,您可以使用以下代码进行操作:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Usuários");

ref.child(iD).child("Button").setValue("Pizza");

//id is the string I can see in the databse image dG9ue...

推荐阅读