Я пытался подключить динамический веб-проект в Eclipse EE к Firebase.Я загрузил все необходимые зависимости (из проекта maven).
Вот код, который я использовал непосредственно из документации Firebase на Java.
public class FirebaseUpdater {
public static void main(String[] args){
FileInputStream serviceAccount;
try {
serviceAccount = new
FileInputStream("C:/Users/Asus/workspace/school-dy2"
+ "/schoolbackup_service.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://schoolbackup-f2429.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
// As an admin, the app has access to read and write all data,
//regardless of Security Rules
DatabaseReference ref = FirebaseDatabase.getInstance()
.getReference();
DatabaseReference attendance = ref.child("Attendance1");
attendance.setValueAsync("Debarred");
System.out.println(attendance.toString());
attendance.addListenerForSingleValueEvent(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println("Datasnapshot Received");
Object document = dataSnapshot.getValue();
System.out.println(dataSnapshot.getKey());
}
public void onCancelled(DatabaseError error) {
}
});
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Я также использовал правильныепроцедура получения ключа учетной записи службы (Firebase Console-> Пользователи и разрешения-> Учетные записи служб-> Создать новый закрытый ключ)
Правила безопасности базы данных также являются общедоступными (с самого начала это не должно вызывать проблем)так как у меня есть ключ учетной записи службы):
{
"rules": {
".read": true,
".write": true
}
}
Проект успешно компилируется, и подключение к Интернету не является проблемой.
Я также проверил URL-адрес рабочей области.Он правильно переносит меня в базу данных в браузере.
Однако, несмотря на все это, мой проект, похоже, не подключается к базе данных firebase и не обновляет значения.
Может кто-нибудь сказать мне, какие могут быть возможные проблемы?Я зашел в тупик.
Обратите внимание, что я использую eclipse ee (динамический веб-проект) и напрямую импортировал зависимости maven для com.google.firebase (groupID), firebase-admin (artifactID).), 6.2.0 (версия).
Может ли быть так, что я не могу использовать зависимости maven для динамического веб-проекта?Является ли метод ключа учетной записи службы проблемой?Есть ли возможный обходной путь для этого?
РЕДАКТИРОВАТЬ: я попытался распечатать GoogleCredentials.fromStream (serviceAccount), чтобы увидеть, что не так.Вот что я получил:
ServiceAccountCredentials{clientId=109785559732337174527, clientEmail=firebase-adminsdk-0into@schoolbackup-f2429.iam.gserviceaccount.com, privateKeyId=5512743509a43e1371cf88ec3feba4007abe4bf1, transportFactoryClassName=com.google.auth.oauth2.OAuth2Utils$DefaultHttpTransportFactory, tokenServerUri=https://accounts.google.com/o/oauth2/token, scopes=[], serviceAccountUser=null}
serviceAccountUser - ноль.Может ли это быть проблемой?Если да, то как мне это решить.