0

我正在尝试创建Firebase登录和注册应用程序。我已经设置,在注册时,android id将保存到数据库。如果Android ID与另一个帐户退出,用户将无法创建帐户。当我运行该应用程序并尝试注册一个帐户时,显示“正在注册,请稍候...”,然后发生无关事件。我怎样才能解决这个问题?Firebase数据库查询不起作用

+0

你经常检查里面DatabaseError? – Sree

+0

不是,我的代码可以吗? – Fodis

+0

你在UserIdQuery中获得什么? – Sree

回答

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" 
    } 
} 
+0

我不明白。你能否写下 – Fodis

+0

只需按照官方文档的步骤进行操作(如上所述)即可解决问题。 –

+0

没有我想要的方法。我已经使用电子邮件并传递方法。看到我的代码兄弟。 – Fodis

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(); 
     } 
    }); 
+0

它将完成活动并打开ProfileActivity – Fodis

+0

@waqab。这现在正在工作 – Fodis