Firebase数据库查询无效

时间:2017-10-13 07:53:35

标签: android firebase firebase-realtime-database firebase-authentication

我正在尝试创建Firebase登录和注册应用。我已经设置了在注册时android id将保存到数据库。如果Android ID退出其他帐户,则用户无法创建帐户。当我运行应用程序并尝试注册一个帐户时,它的节目"注册请等待......"并且没有发生。我怎样才能解决这个问题?

2 个答案:

答案 0 :(得分:0)

将代码更改为此。

if(task.isSuccessful()){
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child(firebaseAuth.getCurrentUser().getUid()).child("Id").setValue(android_id);
progressDialog.dismiss();
startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
finish();
}

并在取消查询时关闭progressDialog

@Override
        public void onCancelled(DatabaseError databaseError) {
        progressDialog.dismiss();
        }
    });

答案 1 :(得分:0)

要解决此问题,您建议使用Firebase Authentication

它很容易实现,并且您将来不会有任何代码需要维护。

要查找Android设备的序列号,请使用以下代码:

TelephonyManager tManager = (TelephonyManager)myActivity.getSystemService(Context.TELEPHONY_SERVICE);
String androidSerialNumber = tManager.getDeviceId();

拥有此androidSerialNumber,您可以使用它将其保存在数据库中。

0down voteaccepted

另一种方法是改变数据库规则:

{ "rules": 
     { ".read": "true",
       ".write": "auth != null"
     }
 }