Firebase Authが春のブートで初期化されない

AndroidDev:

Spring BootアプリでFirebase管理SDKを使用しています。(APIアプリ)

ローカルでintelliJを実行すると、正常に動作します。しかし、Tomcatにデプロイすると、NPEが得られます。

Springbootアプリケーション

 public static void main(String[] args) {
    SpringApplication.run(InfanoApplication.class, args);

    try {
        ClassLoader classloader = Thread.currentThread().getContextClassLoader();

        File file = new File(classloader.getResource("firebase2.json").getFile());
        logger.info("FILE PATH : " + file.getAbsolutePath());
        FileInputStream serviceAccount = new FileInputStream(file.getAbsolutePath());

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .setDatabaseUrl(FB_BASE_URL)
                .build();

        firebaseApp = FirebaseApp.initializeApp(options);
        logger.info("FIREBASE NAME : "+firebaseApp.getName());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

APIコード

userRecord = FirebaseAuth.getInstance(InfanoApplication.firebaseApp).getUserByPhoneNumber(mobile);

エラー:

java.lang.NullPointerException
at com.google.firebase.ImplFirebaseTrampolines.getService(ImplFirebaseTrampolines.java:62)
at com.google.firebase.auth.FirebaseAuth.getInstance(FirebaseAuth.java:101)

誰かがこの問題を修正するのに役立ちますか?前もって感謝します。

シャバブカリム:

mainメソッドでこのようなFirebaseのインスタンスを作成しないでください。おそらく、サービスアカウントが適切なクラスパスで見つかりません。アプリケーションの起動時にFirebaseアプリを作成するSpring Configurationを作成します。リソースフォルダーのルートにサービスアカウントを保持しています

@Configuration
public class FirebaseConfig {

    //TODO: In your case maybe something else
    @Value(value = "classpath:serviceAccount.json")
    private Resource serviceAccountResource;

    @Bean
    public FirebaseApp createFireBaseApp() throws IOException {
        InputStream serviceAccount = serviceAccountResource.getInputStream();

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .setDatabaseUrl("<db-url>")
                .setStorageBucket("<storage-url>")
                .build();

        //Add loggers
        System.out.println("Firebase config initialized");

        return FirebaseApp.initializeApp(options);
    }

    
    @Bean
    @DependsOn(value = "createFireBaseApp")
    public StorageClient createFirebaseStorage() {
        return StorageClient.getInstance();
    }

    @Bean
    @DependsOn(value = "createFireBaseApp")
    public FirebaseAuth createFirebaseAuth() {
        return FirebaseAuth.getInstance();
    }

    @Bean
    @DependsOn(value = "createFireBaseApp")
    public FirebaseDatabase createFirebaseDatabase() {
        return FirebaseDatabase.getInstance();
    }

    @Bean
    @DependsOn(value = "createFireBaseApp")
    public FirebaseMessaging createFirebaseMessaging() {
        return FirebaseMessaging.getInstance();
    }
}

ここで、Firebase Authをサービスクラスのいずれかで使用したい場合は、次のようにします。

@Service
class MyService {

    @Autowired
    private FirebaseAuth firebaseAuth;

    //TODO: Probably should have return type
    public void findUser(String mobile) {
        firebaseAuth.getUserByPhoneNumber(mobile);
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AndroidでFirebaseアプリがすでに初期化されているかどうかを確認する方法

分類Dev

FirebaseアプリがGoogle Cloudで初期化されていません

分類Dev

Firebaseのクラッシュレポートは行番号なしで難読化が解除されます

分類Dev

Firebaseが初期化されていません

分類Dev

Firebaseのメール確認でアカウントが確認されない

分類Dev

firebase push_tokenがブラックリストに登録されているのはなぜですか?

分類Dev

Xamarin、Firebase:「デフォルトのFirebaseAppはこのプロセスで初期化されません」-initializeApp()が呼び出されますが?

分類Dev

キャッチされないエラー:Firebaseオプションでストレージバケットが定義されていません。(ウェブ)

分類Dev

Angular FIrebase5オブジェクトのキーが表示されていません。削除できません

分類Dev

Electron-Firebaseでサポートされていないブラウザ

分類Dev

Firebase Admin:admin.auth()。delete(uid)がAVA test.after()で解決されない

分類Dev

メソッドを呼び出す前に、Firebaseからのデータで配列が初期化されるのを待っています

分類Dev

初期化されているにもかかわらず、Firebaseが初期化されていないエラーをスローする

分類Dev

Firebase A / BTestingのライブデータがAndroidアプリに表示されない

分類Dev

Firebase auth()サブ関数が認識されない

分類Dev

firebase.authは関数ではありません-複数のfirebaseアプリの初期化があります

分類Dev

Firebase認証がFlutterWebで永続化されない

分類Dev

Firebaseデータベースの「.info / serverTimeOffset」が更新されない

分類Dev

Firebaseからの場合、テキスト出力がフラッターで段落行がスローされない

分類Dev

Firebaseのauth.currentUser.updateProfileの後にauth.onAuthStateChangedがトリガーされない

分類Dev

リストビューにFIREBASEのアイテムが表示されない

分類Dev

Firebaseの単一値イベントリスナーが返されない

分類Dev

InvalidOperationException:Firebaseリアルタイムデータベースが適切に初期化されていません

分類Dev

Firebaseストレージにデータが表示されない

分類Dev

テキストビューでFirebaseデータが取得されない

分類Dev

オブザーバーSingleEvent関数がFirebaseで実行されていない

分類Dev

Firebase データが保存されない

分類Dev

Firebaseのルートディレクトリが表示されない

分類Dev

Firebaseのコメントがデータベースに表示されない

Related 関連記事

  1. 1

    AndroidでFirebaseアプリがすでに初期化されているかどうかを確認する方法

  2. 2

    FirebaseアプリがGoogle Cloudで初期化されていません

  3. 3

    Firebaseのクラッシュレポートは行番号なしで難読化が解除されます

  4. 4

    Firebaseが初期化されていません

  5. 5

    Firebaseのメール確認でアカウントが確認されない

  6. 6

    firebase push_tokenがブラックリストに登録されているのはなぜですか?

  7. 7

    Xamarin、Firebase:「デフォルトのFirebaseAppはこのプロセスで初期化されません」-initializeApp()が呼び出されますが?

  8. 8

    キャッチされないエラー:Firebaseオプションでストレージバケットが定義されていません。(ウェブ)

  9. 9

    Angular FIrebase5オブジェクトのキーが表示されていません。削除できません

  10. 10

    Electron-Firebaseでサポートされていないブラウザ

  11. 11

    Firebase Admin:admin.auth()。delete(uid)がAVA test.after()で解決されない

  12. 12

    メソッドを呼び出す前に、Firebaseからのデータで配列が初期化されるのを待っています

  13. 13

    初期化されているにもかかわらず、Firebaseが初期化されていないエラーをスローする

  14. 14

    Firebase A / BTestingのライブデータがAndroidアプリに表示されない

  15. 15

    Firebase auth()サブ関数が認識されない

  16. 16

    firebase.authは関数ではありません-複数のfirebaseアプリの初期化があります

  17. 17

    Firebase認証がFlutterWebで永続化されない

  18. 18

    Firebaseデータベースの「.info / serverTimeOffset」が更新されない

  19. 19

    Firebaseからの場合、テキスト出力がフラッターで段落行がスローされない

  20. 20

    Firebaseのauth.currentUser.updateProfileの後にauth.onAuthStateChangedがトリガーされない

  21. 21

    リストビューにFIREBASEのアイテムが表示されない

  22. 22

    Firebaseの単一値イベントリスナーが返されない

  23. 23

    InvalidOperationException:Firebaseリアルタイムデータベースが適切に初期化されていません

  24. 24

    Firebaseストレージにデータが表示されない

  25. 25

    テキストビューでFirebaseデータが取得されない

  26. 26

    オブザーバーSingleEvent関数がFirebaseで実行されていない

  27. 27

    Firebase データが保存されない

  28. 28

    Firebaseのルートディレクトリが表示されない

  29. 29

    Firebaseのコメントがデータベースに表示されない

ホットタグ

アーカイブ