我已经将我的Android应用配置为登录到firebase,它没有任何问题。 我已创建登录活动,成功登录后,我将继续进行新活动。 稍后在我的一个AsyncTask中,我查询数据库 我已更改权限规则,因此只有身份验证用户才能读/写... 但即使在成功登录后,我仍然被拒绝了。
我是否需要将UID放在查询中的某个位置?
以下是我的一个问题:
Query personFaceSizeHeightQueryEndAt = myRef.orderByChild("mCalculateFaceSizeHeight")
.endAt(faceDetails.getmCalculateFaceSizeHeight())
.limitToLast(1);
personFaceSizeHeightQueryEndAt.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.exists()) {
String personName = dataSnapshot.getKey();
Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildAdded:" + personName);
if( checkIfPersonAlreadyFoundInQueryFaceSizeHeight(personName) == false){
Person person = dataSnapshot.getValue(Person.class);
checkNumberOfMatchesAndWriteToTheDisk(personName,person);
}
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
if(dataSnapshot.exists()) {
Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildChanged:" + dataSnapshot.getKey());
}
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()) {
Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildRemoved:" + dataSnapshot.getKey());
}
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
if(dataSnapshot.exists()) {
Log.d(TAG, "personFaceSizeHeightQueryEndAt:onChildMoved:" + dataSnapshot.getKey());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG, "personFaceSizeHeightQueryEndAt:DatabaseError:" + databaseError.getMessage());
}
});
}
以下是登录成功后登录活动的消息
07-20 06:39:31.050 4806-4806/com.example.erang.facerecognition D/EmailPassword: signInWithEmail:success
以下是我的数据库规则:
{
"rules": {
"People": {
"users": {
"$uid": {
".read": "auth.uid === $uid",
".write": "auth.uid === $uid"
}
Later there are the indexes ...
答案 0 :(得分:0)
关闭模拟器并再次运行。