Android Firebase Realtime DB:addListenerForSingleValueEvent未被触发

时间:2018-06-07 08:29:46

标签: android firebase firebase-realtime-database

我正在使用本机Android应用程序,我有一个其他工作代码,使用firebase电子邮件/密码身份验证来验证我的用户。在身份验证后,我将用户的详细信息存储在firebase relatime数据库中。

唯一的问题是当我尝试查询数据库以检查用户是否已存在时的部分。下面是执行此查询的代码片段,但是,流似乎没有进入'addListenerForSingleValueEvent'部分:

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);

}

我进行了一些调查:

  1. 调试显示代码不在onDataChange或onCancelled内。
  2. 变量chkMail不为null(在调试中再次显示)。
  3. 应用程序正在连接到正确的firebase数据库,并且存在子项“配置文件”。
  4. 如果我删除此检查(用户是否存在于数据库中),则使用用户详细信息更新firebase数据库的下一部分会很好,并且数据在firebase仪表板上可见。但是,仅当用户尚不存在时才会发生这种情况。
  5. 我还查看了帖子this。 将log语句合并到onDataChange中(如上面的代码片段所示),但是UserCheck1没有记录在任何地方,表示正在跳过执行!

    你所有优秀人才的指示?

0 个答案:

没有答案