Я пытаюсь добавить некоторые данные в облачную базу данных firestore с помощью java admin sdk. Я инициализирую как в документах:
InputStream serviceAccount = Main.class.getClassLoader().getResourceAsStream("xxx-service-account.json");
GoogleCredentials credentials =
GoogleCredentials.fromStream(serviceAccount);
FirestoreOptions firestoreOptions = FirestoreOptions.newBuilder().setTimestampsInSnapshotsEnabled(true).build();
Firestore firestore = firestoreOptions.getService();
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(credentials)
.build();
FirebaseApp.initializeApp(options);
Firestore db = FirestoreClient.getFirestore();
А потом я пытаюсь добавить некоторые данные следующим образом:
Map<String, Object> docData = new HashMap<>();
System.out.println("DOCTOR LIST SIZE: "+doctorList.size());
for (Doctor doctor: doctorList) {
docData.put("name", doctor.getName());
ApiFuture<WriteResult> future =
db.collection("Doktor").document().set(docData);
System.out.println("FUTURE : "+future.toString());
ApiFutures.addCallback(future, new ApiFutureCallback<WriteResult>(){
@Override
public void onFailure(Throwable t) {
System.out.println("PUSH DOCTORS FAILURE: "+t.getCause());
}
@Override
public void onSuccess(WriteResult result) {
System.out.println("PUSH DOCTORS SUCCESS!");
}
});
Но я не могу записать какие-либо данные в пожарный. Future.isDone () всегда ложно. Может ли кто-нибудь помочь мне понять, что я делаю здесь неправильно? Любое предложение? Спасибо.