数据未添加到 Firebase 实时数据库
Data is not getting added to Firebase Realtime Database
我一直在关注实时数据库教程,本教程最后更新于 2020 年 12 月 31 日,来自 GeeksForGeeks-how-to-save-data-to-the-firebase-realtime-database-in-android
但对我来说,数据没有添加到数据库中
我在 Android Studio 中使用过 Firebase 助手
这是主要的Activity,它只有 2 个按钮,用于添加数据和查看它们的活动
Java 主文件Activity:
package com.anurag.newemsapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button btnAdd, btnView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnAdd = findViewById(R.id.btnAdd);
btnView = findViewById(R.id.btnView);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent a = new Intent(MainActivity.this, AddActivity.class);
startActivity(a);
}
});
// the View button is disabled for time-being
}
}
Add Activity, 这是我接受用户输入并尝试将数据保存在 Firebase
中的地方
Java 添加文件Activity
package com.anurag.newemsapp;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class AddActivity extends AppCompatActivity {
private EditText etAddEid, etAddEname;
private Button btnAddSave;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
Employee employee;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
etAddEid = findViewById(R.id.etAddEid);
etAddEname = findViewById(R.id.etAddEname);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference("Employee");
employee = new Employee();
btnAddSave = findViewById(R.id.btnAddSave);
btnAddSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String id = etAddEid.getText().toString();
String name = etAddEname.getText().toString();
if (id.length() == 0 && name.length() == 0) {
Toast.makeText(AddActivity.this, "Please add some data.", Toast.LENGTH_SHORT).show();
} else {
addDataToFirebase(id, name);
}
}
});
}
private void addDataToFirebase(String id, String name) {
employee.setEmployeeId(id);
employee.setEmployeeName(name);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
databaseReference.push().setValue(employee);
Toast.makeText(AddActivity.this, "data added", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Toast.makeText(AddActivity.this, "Fail to add data " + error, Toast.LENGTH_SHORT).show();
}
});
}
}
现在,当我按下“保存”按钮时,它会执行验证部分,但是 addDataToFirebase 似乎不起作用。
我没有抛出错误,应用程序运行得很好。只是没有添加到 Firebase 实时数据库的数据
我在项目级别添加了 google-services.json 文件,从 firebase 控制台手动下载后
所以,解决这个问题的方法是,
将数据库 URL 传递给 FirebaseDatabase.getInstance() 函数。您可以在 Firebase 控制台上找到它。仅当数据库位置设置为 US-Central
.
以外的任何内容时,您才应该这样做
我按照 Android Studio Firebase 助手
上的说明在 asia-southeast1
上设置了我的数据库
我只需要将数据库 URL 添加到 FirebaseDatabase.getInstance() 函数中,就像这样,
FirebaseDatabase.getInstance(URL)
我一直在关注实时数据库教程,本教程最后更新于 2020 年 12 月 31 日,来自 GeeksForGeeks-how-to-save-data-to-the-firebase-realtime-database-in-android 但对我来说,数据没有添加到数据库中
我在 Android Studio 中使用过 Firebase 助手
这是主要的Activity,它只有 2 个按钮,用于添加数据和查看它们的活动
Java 主文件Activity:
package com.anurag.newemsapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button btnAdd, btnView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnAdd = findViewById(R.id.btnAdd);
btnView = findViewById(R.id.btnView);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent a = new Intent(MainActivity.this, AddActivity.class);
startActivity(a);
}
});
// the View button is disabled for time-being
}
}
Add Activity, 这是我接受用户输入并尝试将数据保存在 Firebase
中的地方Java 添加文件Activity
package com.anurag.newemsapp;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class AddActivity extends AppCompatActivity {
private EditText etAddEid, etAddEname;
private Button btnAddSave;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
Employee employee;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
etAddEid = findViewById(R.id.etAddEid);
etAddEname = findViewById(R.id.etAddEname);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference("Employee");
employee = new Employee();
btnAddSave = findViewById(R.id.btnAddSave);
btnAddSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String id = etAddEid.getText().toString();
String name = etAddEname.getText().toString();
if (id.length() == 0 && name.length() == 0) {
Toast.makeText(AddActivity.this, "Please add some data.", Toast.LENGTH_SHORT).show();
} else {
addDataToFirebase(id, name);
}
}
});
}
private void addDataToFirebase(String id, String name) {
employee.setEmployeeId(id);
employee.setEmployeeName(name);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
databaseReference.push().setValue(employee);
Toast.makeText(AddActivity.this, "data added", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Toast.makeText(AddActivity.this, "Fail to add data " + error, Toast.LENGTH_SHORT).show();
}
});
}
}
现在,当我按下“保存”按钮时,它会执行验证部分,但是 addDataToFirebase 似乎不起作用。 我没有抛出错误,应用程序运行得很好。只是没有添加到 Firebase 实时数据库的数据
我在项目级别添加了 google-services.json 文件,从 firebase 控制台手动下载后
所以,解决这个问题的方法是,
将数据库 URL 传递给 FirebaseDatabase.getInstance() 函数。您可以在 Firebase 控制台上找到它。仅当数据库位置设置为 US-Central
.
我按照 Android Studio Firebase 助手
上的说明在asia-southeast1
上设置了我的数据库
我只需要将数据库 URL 添加到 FirebaseDatabase.getInstance() 函数中,就像这样,
FirebaseDatabase.getInstance(URL)