多级用户登录 - Android Studio / Firebase
Posted
技术标签:
【中文标题】多级用户登录 - Android Studio / Firebase【英文标题】:Multi level user login - Android Studio / Firebase 【发布时间】:2019-03-13 16:37:27 【问题描述】:所以我正在尝试为 android Studio 创建一个多级用户登录页面,我有一个有效的基本登录。我向数据库添加了用户级别,但我的应用程序不断崩溃。我使用 Android Studio 和 Firebase 作为后端。
登录类
private void checkUserType()
DatabaseReference databaseReference = firebaseDatabase.getReference().child("Users").child(firebaseAuth.getUid());
databaseReference.addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
UserProfile userProfile = dataSnapshot.getValue(UserProfile.class);
int userType = (userProfile.getUsertype());
switch (userType)
case 0:
startActivity(new Intent(Login.this, DoctorActivity.class));
break;
case 1:
startActivity(new Intent(Login.this, MainActivity.class));
break;
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
);
这是我的数据库的样子:
Logcat:
进程:com.example.trixiavillarama.hope,PID:5524 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“com.google.firebase.database.DatabaseReference com.google.firebase.database.FirebaseDatabase.getReference()” 在 com.example.trixiavillarama.hope.Login.checkUserType(Login.java:124) 在 com.example.trixiavillarama.hope.Login.checkEmailVerification(Login.java:116) 在 com.example.trixiavillarama.hope.Login.access $300(Login.java:26) 在 com.example.trixiavillarama.hope.Login$4.onComplete(Login.java:91) 在 com.google.android.gms.tasks.zzj.run(未知来源:23) 在 android.os.Handler.handleCallback(Handler.java:873) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6669) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
【问题讨论】:
您能否发布关于您如何存储这些不同用户的数据库结构? 我更新了帖子。 @GastónSaillén 如果您的应用程序崩溃,logcat 输出中应该有错误消息和堆栈跟踪。您可以查找这些内容并将其添加到您的问题中吗? 帖子已更新。谢谢 您好,您似乎已经开始使用 SO,并且您在编辑问题以帮助我们帮助您方面做得很好。我只是建议您查看this *** article 并选择tour 【参考方案1】:您收到以下错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“com.google.firebase.database.DatabaseReference com.google.firebase.database.FirebaseDatabase.getReference()”
因为您的firebaseDatabase
对象是null
,所以您忘记初始化它。要解决这个问题,请添加以下代码行:
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
就在以下代码行之前:
DatabaseReference databaseReference = firebaseDatabase.getReference().child("Users").child(firebaseAuth.getUid());
【讨论】:
应用程序现在不会崩溃,但如果我使用管理员帐户,它不会重定向到其他页面,反之亦然 这听起来基本上是另一个问题。为了遵守本社区的规则,请再发一个新问题,以便我和其他用户可以帮助您。以上是关于多级用户登录 - Android Studio / Firebase的主要内容,如果未能解决你的问题,请参考以下文章