firebase - 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;
}
}
解决方案
您没有使用对数据库的正确引用。从标题为“我想做的事情”的图像中,您可以使用以下代码进行操作:
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...
推荐阅读
- plsql - 加入时在 AND NOT EXISTS 中缺少右括号错误?
- vim - 使用 vim 将文本中的数字乘以常量
- c++ - 向量返回负大小 c++
- php - Apache2 droplet CPU 使用率 100% 启动服务器
- swift - 无法在 Alamofire 中获取数组值
- google-bigquery - 大查询:带有列前缀的 SQL JOIN
- bitbucket - Bitbucket中的项目空间列表排序
- javascript - 在网页中添加用于搜索功能的脚本
- python - 我是否有足够的数据来运行可靠的分析?
- latex - 如何在乳胶中的 pst-optexp 包中翻转分束器的方向