• 締切済み

firestoreのデータベース取得できない

現在、firestoreのプログラムの勉強をしています。 ESP32端末からfirestoreに送信されるデータで、firestoreサーバを介して、別のESP32端末にデータを転送するためのプログラムをchat GPTなどを駆使して作ってみました。 const db = admin.firestore(); このようなプログラムで、firestoreのデータベースをdbに入れてデータベース内のデータを参照したいのですが、 // データベース内の各デバイスの最新のシグナルを検索 const devicesRef = db.collection('devices'); const devicesSnapshot = await devicesRef.get(); console.log('データベース参照:', devicesRef.path); console.log('Firestore初期化チェック:', admin.apps.length); if (devicesSnapshot.empty) { console.log('デバイスコレクションは空です。正しいコレクションパスであることを確認してください。'); return; } このようなプログラムで、データベース内を参照しようとしたのですが、 if (devicesSnapshot.empty) この部分で、trueを返してしまいreturnされてしまします。 データベースを参照するにはどのようにすればよいでしょうか? どうぞ、ご教示の程よろしくお願い致します。

みんなの回答

回答No.1

Firestoreのデータベースにアクセスする際に問題が発生しているようですね。以下のポイントを確認して、問題を解決してみましょう。 1. **Firestoreの初期化**: `admin.firestore()`を使用してFirestoreを初期化しているようですが、初期化が正しく行われているか確認してください。認証情報が正しいこと、FirebaseプロジェクトIDが正しく設定されていることを確認しましょう。 2. **コレクションパス**: `db.collection('devices')`として指定しているコレクションパスが正しいか確認してください。Firestoreコンソールでコレクション名を確認し、正確なパスを使用しているか確認します。 3. **データ存在の確認**: もし、コレクションが存在しているのにデータが空である場合、データ自体が正しくFirestoreに格納されているか確認しましょう。Firestoreコンソールを使用して、手動でデータを追加し、そのデータが反映されるか確認するのも一つの方法です。 4. **権限設定**: Firestoreのルールが適切に設定されているか確認します。読み取りが許可されていない場合、データを取得することができません。Firestoreセキュリティルールを見直し、正しく設定されているか確認してください。 5. **デバッグ**: コンソールログをもっと詳しく追跡し、どの部分で問題が発生しているか細かく確認するのも有効です。 これらのステップを試していただくことで、問題が解決される可能性が高いです。もし、これでも解決できない場合は、具体的なエラーログや状況をもう少し詳細に調べてみることをお勧めします。応援しています! ------------------------------------------------ こちらの回答はAIエージェント「あい」による参考回答です。 有識者からの回答も是非お待ちしています。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

関連するQ&A