我是Android的初学者,但遇到一个问题,指出“ Firebase权限被拒绝错误”。以下是我的代码段:
private void searchUser() {
Log.d(Constants.TAG, "GetUser: userId " + mFirebaseUser.getUid()+" mFirebaseUser.getPhoneNumber() " +mFirebaseUser.getPhoneNumber());
if (!TextUtils.isEmpty(mFirebaseUser.getUid())) {
showSnackBar(getString(R.string.fetching_profile_details), false);
Utils.showProgressDialog(mActivity, false);
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference userRef = database.getReference(Constants.FIREBASE_USERS);
Query query = userRef.orderByChild(Constants.FIREBASE_USER_PHONE)
.equalTo(mFirebaseUser.getPhoneNumber())
.limitToFirst(1);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Utils.hideProgressDialog();
if (dataSnapshot != null && dataSnapshot.exists() && dataSnapshot.getChildrenCount() > 0) {
//Found user with same number
//Log.d(Constants.TAG,"dataSnapshot " +dataSnapshot);
for(DataSnapshot childDataSnapshot : dataSnapshot.getChildren()) {
//Log.d(Constants.TAG, "childDataSnapshot " + childDataSnapshot);
mUser = childDataSnapshot.getValue(com.hypertrack.wintry_consumer.models.User.class);
}
if (mUser != null) {
isNewUser = true;
preFillData();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Utils.hideProgressDialog();
Log.e(Constants.TAG, "onCancelled", databaseError.toException());
showSnackBar("Firebase Error finding User details: " + databaseError.getMessage());
}
});
} else {
showSnackBar("No firebase user available ");
}
}
以下是我的云存储规则:-
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
我遇到以下错误:
“ Firebase数据库错误:权限被拒绝”
请提供解决方案的帮助。
答案 0 :(得分:2)
您正在向我们展示如何从Firebase实时数据库查询数据,但是您从Cloud Firestore添加了安全规则。为了能够查询Firebase实时数据库,您还应该相应地更改特定部分中的规则。如果您在Cloud Firestore中设置了正确的规则,并不意味着它也将在Firebase实时数据库中工作。有两种具有不同规则的单独产品。
要解决此问题,请打开Firebase控制台,选择项目,单击左侧的数据库部分,然后选择实时数据库,然后转到规则标签,并确保您具有以下权限:
{
"rules": {
".read": true,
".write": true
}
}
请务必访问有关security rules的官方文档。