Android Firebase实时数据库:未触发addListenerForSingleValueEvent
我正在开发一个本地android应用程序,我有一个工作代码,可以使用firebase电子邮件/密码身份验证对我的用户进行身份验证。身份验证后,我将用户的详细信息存储在firebase relatime数据库中 唯一的问题是,我试图查询数据库以检查用户是否已经存在。下面是执行此查询的代码段,但是,流似乎没有输入“addListenerForSingleValueEvent”部分:Android Firebase实时数据库:未触发addListenerForSingleValueEvent,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在开发一个本地android应用程序,我有一个工作代码,可以使用firebase电子邮件/密码身份验证对我的用户进行身份验证。身份验证后,我将用户的详细信息存储在firebase relatime数据库中 唯一的问题是,我试图查询数据库以检查用户是否已经存在。下面是执行此查询的代码段,但是,流似乎没有输入“addListenerForSingleValueEvent”部分: private void firstTimeUser(final String chkMail){ myRe
private void firstTimeUser(final String chkMail){
myRef.child("profile").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
userExists = dataSnapshot.hasChild(chkMail);
Log.d(TAG, "UserCheck1= " + userExists);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), "An unexpected error occurred!", Toast.LENGTH_SHORT).show();
}
});
Log.d(TAG, "UserCheck2 = " + userExists);
}
我进行了一些调查:
你们这些好人有什么建议吗?尝试使用:
抛出databaseError.toException()在您的onCancelled
方法中的code>。它返回什么?可以添加数据结构吗?可以在onCancelled()中记录databaseError吗?我相信这可能是因为数据库规则。如果您的用户尚未通过身份验证,而您试图访问db值,则会出现错误。@Alex Mamo:将该行添加到onCancelled方法中,结果相同。返回的异常与“userExists”值为null有关。@mark922:尝试在注释后向onCancelled方法添加日志,但结果仍然相同。用户的身份验证很好,我对此进行了检查。刚刚在新的跑步中再次确认。