【发布时间】:2018-06-22 13:01:09
【问题描述】:
好的,我想这里有一些更新可以更好地解释问题:
我正在尝试使用 firebase 数据库执行以下任务:
- 如果验证了用户的email地址,检查firebase数据库
https://example.firebaseio.com/Users/Permission中的Permission值是否为allow - 如果
Permission: "allow",则使profileAllow布局可见。否则,使profileVarified布局可见。 - 如果未验证电子邮件,则使
profileNotVarified布局可见。
我的问题是如果用户的电子邮件没有经过验证,它会使profileNotVarified 布局完美可见,但是当验证电子邮件时,逻辑不起作用。无论Permission 值是allow 还是其他,它都不会使任何布局可见。我的猜测是它没有从数据库中获得任何价值。 (我已尝试使所有布局可见或转到另一个活动以获取已验证的电子邮件,但它没有做任何事情。它只是显示一个空白布局。
这是我的活动,我猜问题出在:
private void loadUserInformation() {
final FirebaseUser user = mAuth.getCurrentUser();
if (user.isEmailVerified()) {
Firebase AllUserPermission = new Firebase("https://example.firebaseio.com/Users/Permission");
AllUserPermission.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String myStrign = dataSnapshot.getValue(String.class);
if (myStrign.equals("allow")) {
profileAllow.setVisibility(View.VISIBLE);
profileVarified.setVisibility(View.GONE);
profileNotVarified.setVisibility(View.GONE);
} else {
profileAllow.setVisibility(View.GONE);
profileVarified.setVisibility(View.VISIBLE);
profileNotVarified.setVisibility(View.GONE);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {}
});
} else {
profileAllow.setVisibility(View.GONE);
profileVarified.setVisibility(View.GONE);
profileNotVarified.setVisibility(View.VISIBLE);
}
}
作为参考,我也附上xml和数据库结构。
这是我的activity_profile.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.ProfileActivity">
<RelativeLayout
android:id="@+id/profileNotVarified"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/imageView"
android:layout_marginStart="59dp"
android:layout_marginTop="48dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Not varified" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/profileVarified"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView2"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Varified" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/profileAllow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView2"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Allowed" />
</RelativeLayout>
</RelativeLayout>
【问题讨论】:
-
从
new Firebase("https://smartpedi-rimikri.firebaseio.com/Users/Permission")看来,您使用的是两年多前的 Firebase SDK。我强烈建议使用此处显示的说明更新到最新版本:firebase.google.com/support/guides/firebase-android
标签: android firebase firebase-realtime-database