Android Studio和Firebase中的权限被拒绝错误[重复]
Posted
技术标签:
【中文标题】Android Studio和Firebase中的权限被拒绝错误[重复]【英文标题】:Permission Denied Error in Android Studio & Firebase [duplicate] 【发布时间】:2019-03-07 14:22:59 【问题描述】:我是 android 的初学者,遇到了“Firebase 权限被拒绝错误”的问题。以下是我的代码 sn-p:
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 数据库错误:权限被拒绝”
Android Studio Screenshot
请帮忙解决一下。
【问题讨论】:
【参考方案1】:您向我们展示了如何从 Firebase 实时数据库中查询数据,但您添加了来自 Cloud Firestore 的安全规则。为了能够查询 Firebase 实时数据库,您还应该相应地更改特定部分中的规则。如果您在 Cloud Firestore 中设置了正确的规则,并不意味着它也适用于 Firebase 实时数据库。有两种不同的产品,具有不同的规则。
要解决这个问题,请打开您的 Firebase 控制台,选择您的项目,点击左侧的数据库部分并选择 实时数据库,然后转到 规则选项卡并确保您拥有以下权限:
"rules":
".read": true,
".write": true
请务必访问有关 security rules 的官方文档。
【讨论】:
成功了。非常感谢,先生。以上是关于Android Studio和Firebase中的权限被拒绝错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从 Android Studio 中的片段将数据写入 Firebase
关于使用android studio在firebase实时数据库中的uid下创建随机密钥
读取 longlat 数据实时 Firebase 和实现以映射 Android Studio
使用 Android Studio 从 Firebase 中的某个位置检索数据