带有DeviceID的Firebase登录注册应用程序

时间:2017-10-08 10:46:00

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

我创建了一个登录注册App。我使用电子邮件和密码进行注册。我还补充说,如果用户注册成功,设备ID将保存到数据库。我希望id为设备ID注册的帐户,用户无法使用该设备创建新帐户。我还希望,如果数据库设备ID与当前设备ID匹配,则允许用户登录或不登录。我怎么解决这个问题?通过使用查询?

1 个答案:

答案 0 :(得分:0)

创建一个名为USerId的子项。试试那个

// save data to firebase
     DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
                DatabaseReference ezzeearnRef = rootRef.child("UserId");
                ValueEventListener eventListener = new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        if (dataSnapshot.child(android_id).exists()) {
                            //show what u want
                        } else {
                            //creating a new user
                            firebaseAuth.createUserWithEmailAndPassword(email, password)
                                    .addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
                                        @Override
                                        public void onComplete(@NonNull Task<AuthResult> task) {
                                            //checking if success
                                            if (task.isSuccessful()) {
                                                DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

                                                rootRef.child("UserId").child(android_id).setValue(0);

                                                finish();
                                                startActivity(new Intent(MainActivity.this, LoginActivity.class));
                                            } else {
                                                //display some message here
                                                Toast.makeText(MainActivity.this, "Registration Error", Toast.LENGTH_LONG).show();
                                            }
                                            progressDialog.dismiss();
                                        }
                                    });
                        }