gpt4 book ai didi

java - Firebase 和 Android Studio,无法通过 : W/SyncTree: Listen at/message failed: DatabaseError: Permission denied

转载 作者:行者123 更新时间:2023-12-02 03:16:57 33 4
gpt4 key购买 nike

复制我所做的事情的步骤:

步骤 1) 新项目示例名称:com.myapp.test

第 2 步) Firebase 控制台上的新 Android 应用,名称:com.myapp.test(与 list 中相同)

步骤 3) 下载 google-services.json 并将其放在我项目的“app”文件夹中

步骤 4) 添加以下行:

Build.gradle - 项目级别

classpath 'com.google.gms:google-services:3.0.0'

Build.gradle - 应用级别(位于文件底部)

apply plugin: 'com.google.gms.google-services'

我还借此机会添加了一些我将要使用的 Firebase 依赖项,例如:

compile 'com.google.firebase:firebase-core:9.6.1'
compile 'com.google.firebase:firebase-database:9.6.1'
compile 'com.google.android.gms:play-services:9.6.1'

第 5 步) 主要 Activity (创建时)

    FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");

步骤 6) 运行它并得到以下结果:

W/SyncTree: Listen at /message failed: DatabaseError: Permission denied
W/MainActivity: Failed to read value.
com.google.firebase.database.DatabaseException: Firebase Database error: Permission denied
at com.google.firebase.database.DatabaseError.toException(Unknown Source)
at com.myapp.test.MainActivity$1.onCancelled(MainActivity.java:50)
at com.google.android.gms.internal.zzajp.zza(Unknown Source)
at com.google.android.gms.internal.zzakn.zzcxi(Unknown Source)
at com.google.android.gms.internal.zzaks$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我已经尝试从头开始至少 5 次,名称不同等等。甚至添加指纹。然而,无论我做什么,我都无法摆脱这个错误。

我可以通过转到控制台上的“权限”选项卡并将“auth != null”更改为 true 来使其工作。但这只是创可贴,我需要一个永久的解决方案。

我的手有点被绑住了,没有什么可以尝试的了。我确实收到以下消息,这些消息可能与上述错误有关,也可能无关:

I/InstantRun: Instant Run Runtime started. Android package is com.myapp.test, real application class is null.

还有:

W/DynamiteLoaderImpl: Failed to load module version: module com.google.android.gms.flags not found

最佳答案

唯一的永久解决方案是使用 Firebase 身份验证登录应用用户。

最简单的方法是 sign in with anonymous authentication并且仅在成功时才写入数据库:

mAuth.signInAnonymously()
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");
myRef.setValue("Hello, World!");
}
}
});

关于java - Firebase 和 Android Studio,无法通过 : W/SyncTree: Listen at/message failed: DatabaseError: Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40166173/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com