【发布时间】:2022-01-01 20:04:26
【问题描述】:
我想从 Firebase 实时数据库中获取数据。
我正在尝试通过提供用户的电子邮件来访问“创建者”的值。
例如:
对于输入 cc@cc@cc,我会得到 false。
对于输入 tt@tt@tt 我会得到真实的。
这是我的代码:
String key = emailEditText.getText().toString().replace(".","@");
myRef.child("Users").child(key).child("creator").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
try {
for (DataSnapshot postsnapshot : snapshot.getChildren()) {
if(postsnapshot.getValue().equals(true)){
startActivity(new Intent(LoginActivity.this,CreatorActivity.class));
}
else
startActivity(new Intent(LoginActivity.this,WelcomeActivity.class));
}
*Key 是输入邮箱。
【问题讨论】:
-
好的,你发布了你想做的事情和一些代码。现在...您的问题是什么? stackoverflow.com/help/how-to-ask
-
您好,我的问题是如何从 android studio 访问 firebase 值。我在这里发布了我的代码以供访问,但它不起作用@dominicoder
-
你已经有代码了。它不工作吗?如果不是,为什么不呢?你做了什么来解决这个问题,以及什么 - 确切地说 - 不起作用?你读过吗:firebase.google.com/docs/database/android/read-and-write
-
虽然@alexmamo 有一个了不起的答案,但更大的图景是......不要使用电子邮件地址作为节点键。它们可能包含您必须处理的非法字符(如您所知),最重要的是,电子邮件地址可以更改......节点密钥不能更改,电子邮件地址可以更改;如果发生这种情况,您将不得不遍历您的整个数据库并读入、删除和重写用作键或引用的每个节点。这可能会变得非常昂贵,而且时间很糟糕。更好的办法是让 Firebase 创建您的节点密钥,并将电子邮件地址存储为子节点。
标签: java android firebase firebase-realtime-database google-cloud-platform