android - 我可以在 DatabaseReferences 中使用 Firebase 用户身份验证吗?
问题描述
我有一个用于 firebase 和用户身份验证的数据库,但我不知道如何使用用户电子邮件或 UID 作为子参考。我正在使用 user.getEmail() 将他们的电子邮件作为字符串检索,然后将其放入 .child() 或 .getReference() 中。这样做时,它总是使我的应用程序崩溃。我相信这与我的组织方式有关,但我并不积极。有人有任何线索吗?
private FirebaseAuth mAuth;
FirebaseUser user;
private TextView mTextView;
private String email;
//private String other;
FirebaseDatabase testReference= FirebaseDatabase.getInstance();
DatabaseReference conditionRef=testReference.getReference();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_page);
mTextView=findViewById(R.id.Condition);
mAuth=FirebaseAuth.getInstance();
user=mAuth.getCurrentUser();
if(user!=null){
mTextView.setText("User on Page!");
email=user.getEmail();
conditionRef.child(email);
}
if(user==null)
mTextView.setText("User not on Page");
}
解决方案
如果您尝试将电子邮件发送到数据库,至少我认为您正在尝试这样做,请尝试以下操作:
if(user!=null){
mTextView.setText("User on Page!");
email=user.getEmail();
conditionRef.child("users").child(user.getUid()).child("email").setValue(email);
}
您的数据库必须如下所示:
users
|
|----userID
|
----"email":"someone@something.com"
推荐阅读
- java - Java中电话号码的自定义格式化程序
- javascript - 过滤数组以删除项目并返回数组
- asp.net-core - How do I get Swashbuckle to work in Asp.net Core 3.1 when using VersionByNamespaceConvention?
- python - 为一行数据框设置不同的颜色
- omnet++ - 是否可以多次向同一个节点发送相同的消息?
- c# - 为什么我们从单个黑色像素生成的位图是 1KB?
- python - 如果结果为真,如果结果为假,我如何获得绿色矩形 =(纸 == dict_k)?
- django - InlinePanel 中引用对象的 Wagtail 渲染
- python - 为什么我的字典在可变和不可变之间交替?
- python - Python 脚本小部件的多个输入