2017-02-14 3 views
2

я установка в firebase администратор SDK с помощью this руководстваFirebase Администратор Java SDK не делать какие-либо операции

Так что я инициализирующего его следующим образом.

InputStream refreshToken = new ClassPathResource(CONFIG_FILE).getInputStream(); 

FirebaseOptions options = new FirebaseOptions.Builder() 
      .setCredential(FirebaseCredentials.fromRefreshToken(refreshToken)) 
      .setDatabaseUrl("https://<project-id>.firebaseio.com/") 
      .build(); 

FirebaseApp.initializeApp(options); 

У меня нет ошибок до этого момента, все кажется прекрасным. Однако я не могу выполнять никаких операций. Вызов методов ничего не делает. Например:

FirebaseDatabase.getInstance() 
      .getReference() 
      .addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
         //this callback is never called 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

или

class Pojo { 

    public Pojo(String name, String surname) { 
     this.name = name; 
     this.surname = surname; 
    } 

    String name; 
    String surname; 
    //omitted getters and setters 
} 


FirebaseDatabase.getInstance.getReference() 
       .push() 
       .setValue(new Pojo("Test", "Test")); 
//this value is never set 

Это просто похоже, что СКД игнорирует любую команду. Есть идеи?

Background: Я использую это как веб-приложение (весну) на локальной машине.

+0

Два комментария/вопросы: (1) где вы получаете токен обновления и уверены, что у вас есть надлежащее разрешение на ваш проект (использование токенов обновления - это расширенный вариант использования), и (2) SDK администратора предназначены только для * сервер * приложений и небезопасны для использования в клиентских приложениях. – jwngr

+0

1. Я использую файл учетных данных json, следуя учебнику из документов google. 2. Это серверное приложение, а не клиент. – Manza

ответ

2

Если вы аутентичность SDK с учетной записью службы ключевым файлом JSON, как описано в Add Firebase to your app, вы должны использовать метод fromCertificate(), не fromRefreshToken() метода:

FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json"); 

FirebaseOptions options = new FirebaseOptions.Builder() 
    .setCredential(FirebaseCredentials.fromCertificate(serviceAccount)) 
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/") 
    .build(); 

FirebaseApp.initializeApp(options); 

Проверки подлинности с помощью маркеров обновления является немного расширенный вариант использования и, вероятно, не то, что вы хотите использовать.

+0

Изменена эта строка, она отлично работает, спасибо. – Manza