Firebase Android应用程序-不更新实时数据库
我在尝试将数据推入firebase实时数据库时遇到一些错误。我查阅了几本教程,根据它们,我没有做错什么。不幸的是,我无法从android studio模拟器设备更新数据库 我激活了调试模式并逐步完成了每一个过程,我发现我的代码实际上是有效的,因为数据库在推送它时会使用子id进行响应Firebase Android应用程序-不更新实时数据库,android,firebase,firebase-realtime-database,firebase-authentication,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我在尝试将数据推入firebase实时数据库时遇到一些错误。我查阅了几本教程,根据它们,我没有做错什么。不幸的是,我无法从android studio模拟器设备更新数据库 我激活了调试模式并逐步完成了每一个过程,我发现我的代码实际上是有效的,因为数据库在推送它时会使用子id进行响应 package com.example.fbconnect; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; im
package com.example.fbconnect;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class MainActivity extends AppCompatActivity {
Button btnsaves;
Member member;
DatabaseReference myRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnsaves=(Button)findViewById(R.id.button);
btnsaves.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myRef = FirebaseDatabase.getInstance().getReference("Member");
String id = myRef.push().getKey();
member = new Member("MSmith", 12, id);
myRef.child(id).setValue(member);
Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_SHORT).show();
}
});
}
}
调试到此行时
String id = myRef.push().getKey();
我明白了,数据库回答了一个密码。但它不会设置新值或更新现有数据库child的值
激活调试模式后,我在android studio中发现了一些可能导致问题的罕见线条:
E/FirebaseInstanceId:主题同步或令牌检索因硬故障而失败异常:身份验证\u失败。不会重试该操作
我确信我没有在firebase中激活任何身份验证。正常情况下,每个人都应该能够读写(我知道这一点,但我非常希望数据库连接能够正常工作)
您能帮助我吗?默认情况下,Firebase中的规则用于授权请求 您可以将读取和写入更改为True 但它不安全 任何具有Firebase Url的用户都可以访问和更改数据
转到firebase控制台>数据库>firebase实时数据库>规则选项卡将读写更改为true。
还要检查您的设备是否已连接到internet。您是否在Firebase控制台中更改了Firebase数据库的身份验证?否,默认情况下仍为否。我尝试激活匿名登录方法,但也没有帮助…转到firebase控制台>数据库>firebase实时数据库>规则选项卡将读写更改为true。我也经历了同样的情况,它在我的物理设备上工作,但在模拟器上不工作。但它似乎将数据存储在一些本地缓存中,因为它可以检索我在emulator中设置的内容,但在我关闭应用程序后,这些设置也消失了。对我来说,通过从设备卸载应用程序并重新部署,emulator的问题得到了解决。我已经将这些设置更改为true。但是该应用程序无法连接到数据库。已经连接了,抱歉,您指的是Android studio中的常规firebase authenticationCheck,如果它是否连接到firebase数据库。还要检查你的设备是否连接到互联网我使用的是android studio emulator,它不应该连接到互联网吗?不确定emulator。。。在AVD管理器中尝试“立即冷启动”你是对的…模拟android设备上的系统设置显示:连接到AndroidWifi,没有互联网。“现在冷启动”-没有任何变化