我如何用字符串在firebase中设置值?

时间:2016-05-14 08:02:17

标签: android firebase firebase-realtime-database setvalue

我想创建一个邮件的用户数据库,当用户创建一个帐户时,它会自动在firebase中创建一个节点。例如

public void onSuccess(Map<String, Object> result) {
                        String mail = edtMailSignUp.getText().toString();
                        Firebase rt = root.child(mail);
                        rt.setValue(mail);
}

当我跑它时,它失败了。我该如何解决?

2 个答案:

答案 0 :(得分:0)

方法setValue()将覆盖指定位置的数据,包括任何子节点。

每次将新子项添加到指定的Firebase参考时,您都可以使用生成唯一ID的push()方法。

Firebase rt = root.child(mail);
rt.push().setValue(mail);

如果您想插入更多数据(如姓名,年龄....),您可以使用Pojo存储信息:

public class User {
    private int age;
    private String email;
    private String name;

    //Use the empty constructor
    public User() {}

   // Getters and setters
   //.....
}

然后:

Firebase rt = root.child("users"); //Your users root
User myUser = new User();
myUser.setName(".....");
myUser.setAge(xx);
myUser.setEmail(".....");
rt.push().setValue(myUser);

答案 1 :(得分:0)

我做这个

@Override
                    public void onSuccess(Map<String, Object> result) {
                        String mail = edtMailSignUp.getText().toString();
                        MailDatabase mDtb = new MailDatabase();
                        mDtb.setTime("1234");
                        mDtb.setContent("hongphat");
                        root.push().setValue(mDtb);
                    }

这个

public class MailDatabase {
private String time;
private String content;

public MailDatabase(){

}

public void setTime(String _time){
    time = _time;
}
public void setContent(String _content){
    content = _content;
}
}

但它有bug。这是错的吗?