Данные setValue для базы данных RealTimeDatabase в Foreground Service не записывают данные - PullRequest
0 голосов
/ 13 апреля 2020

Я создал стандартную службу Foreground и попытался реализовать setValue. Это не вызывает никаких ошибок, но база данных в реальном времени не обновляется, хотя выводится сообщение Toast, которое означает, что в методе OnCreate нет проблем, поэтому проблема должно быть с реализацией ссылки на базу данных, моя конечная цель - использовать текущую локацию широты и долготы, поэтому, если есть что-то подходящее, что помогло бы мне, setValue в RTD было бы очень полезно, спасибо

public class ForegroundService extends Service {
private static final String LOG_TAG = "ForegroundService";

@Override
public void onCreate() {
    super.onCreate();
    DatabaseReference db= FirebaseDatabase.getInstance().getReference("Coor");
    db.child("ysssss").push().child("WORKED").setValue("YAY");
    Toast.makeText(this, "Yay", Toast.LENGTH_SHORT).show();
}

/*Standard Foreground onStartCommand: 
@Override
public int onStartCommand(Intent intent, int flags, int startId) {*/

1 Ответ

0 голосов
/ 13 апреля 2020

Прежде всего создайте java класс с именем updateData.java

updateData. java:

public class updatedata {

    private String myData;
public updateData() {
}

public String getmyData() {
    return myData;
}

public void setmyData(String myData) {
    this.myData = myData;
}
//These are getters and setters.

Теперь в вашей MainActivity

DatabaseReference dRef;    
updateData mUpdateData;

dRef = FirebaseDatabase.getInstance().getReference().child("Coor");

mUpdateData.setmyData("YAY");
dRef.child("WORKED").setValue(updateData);

Это похоже на общий код. Можете ли вы попробовать выполнить это, заменив свою собственную переменную и данные? Дайте мне знать, если вам нужны какие-либо изменения.

...