【发布时间】:2023-09-18 16:17:01
【问题描述】:
我正在尝试按照 Firebase 的在线指南使用 Firebase 实时数据库,但由于我的权限被拒绝,我无法获取数据库的任何更新。我不确定我做错了什么。我什至设置了读写规则为真。
onClickListener里面的代码如下:
Button vDetails = (Button) v.findViewById(R.id.enter_vechile_details);
vDetails.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference();
myRef.child("Customers").child("Drivers").setValue("Name").addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(TAG, "signUp: set customer name" + e);
e.printStackTrace();
}
});
getFragmentManager().beginTransaction().replace(R.id.fragment_container, new SignUpCustomerFragment()).commit();
}
});
这是在片段内,按钮在开始片段替换事务之前首先完成这些语句。
这是 Firebase 中的规则:
{
"rules": {
".read": true,
".write": true
}
}
由于我是 JSON 新手,我也尝试过在“.write”末尾添加逗号
{
"rules": {
".read": true,
".write": true,
}
}
这是堆栈跟踪:
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: com.google.firebase.database.DatabaseException: Firebase Database error: Permission denied
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at com.google.firebase.database.DatabaseError.toException(Unknown Source)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at com.google.android.gms.internal.zzall$1.onComplete(Unknown Source)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at com.google.android.gms.internal.zzahq$20.run(Unknown Source)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at android.os.Handler.handleCallback(Handler.java:739)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at android.os.Looper.loop(Looper.java:168)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5885)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at java.lang.reflect.Method.invoke(Native Method)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
09-10 04:32:46.274 16594-16594/com.buildingstories.sabbib.xpose W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
09-10 04:32:46.276 16594-16594/com.buildingstories.sabbib.xpose W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
自从我遵循 Firebase 指南以来,我整天都在做这件事,我不知道出了什么问题。
【问题讨论】:
-
将
addOnFailureListener附加到myRef.setValue()以查看您遇到了什么错误。 -
从 Firebase 控制台向您发布客户类代码和实时数据库结构
-
很可能您没有写入数据的权限。在how to detect errors when writing a value on Android 上阅读此说明
-
你说得对,我没有得到许可。我已经设置了允许读取和写入数据的规则,但它仍然不允许我。我能做些什么来进一步调试它?我有一个 printStackTrace,但没有充分利用它@FrankvanPuffelen
-
参考这个链接它会为我工作*.com/a/37404116/4427519
标签: android android-fragments firebase firebase-realtime-database permission-denied