【发布时间】:2016-08-10 10:30:09
【问题描述】:
我的应用程序包含多种类型的用户,例如 normalUser、PremiumUser
并且为了定义我在 firebasedatabase 中使用他们唯一的 UID 到他们的类别溢价或正常的每个人
这是我的数据库 Firebase 形状
--users
-----normal
-----premium
所以如果用户选择普通帐户,他将只被分配到普通帐户
对我来说,这是他稍后登录时如何获取他的数据如下
if (auth.getCurrentUser() != null) {
finish();
Query q = FirebaseDatabase.getInstance().getReference().child("users").child("normal").equalTo(auth.getCurrentUser().getUid());
Query q2 = FirebaseDatabase.getInstance().getReference().child("users").child("premium").equalTo(auth.getCurrentUser().getUid());
if (q != null) {
q.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
startActivity(new Intent(Login.this, Normal.class));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
} else {
q2.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
startActivity(new Intent(Login.this, Premium.class));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
但看起来代码输入了这两项活动,但可以肯定该帐户仅存在于其中一个类别中(普通或高级)
我尝试过使用
if (dataSnapshot.getChildrenCount()>0) //none of both activities is entered
if (dataSnapshot != null)//both Activites still entered
if(dataSnapshot.getValue(Premium.class)!=null)//vvvv
if(dataSnapshot.getValue(Normal.class)!=null)//but still none entered
我也试过了
Query q = FirebaseDatabase.getInstance().getReference().child("users").child("normal").equalTo(auth.getCurrentUser().getUid());
final Query q2 = FirebaseDatabase.getInstance().getReference().child("users").child("premium").equalTo(auth.getCurrentUser().getUid());
q.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
startActivity(new Intent(Login.this, Normal.class));
}
else {
q2.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
startActivity(new Intent(Login.this, Premium.class));
}
但没有一个也被输入
我该如何解决这个问题
谢谢
【问题讨论】:
标签: java android firebase firebase-realtime-database