データ保存に関する Firebase 権限拒否の問題
Firebase では、データベースに保存されているデータへのアクセス権限をセキュリティ ルールによって管理します。デフォルトでは、認証されたユーザーのみがデータの読み取りと書き込みを許可されます。ただし、問題のコードは認証メカニズムをまったく実装せずにデータを保存しようとしているようです。これにより、「権限が拒否されました」エラーが発生します。
セキュリティ ルールについて
セキュリティ ルールは、Firebase データベース内のデータにアクセスしてデータを変更できるユーザーを定義します。これらは、JSON に似た簡略化された言語で記述することができます。提供されたコードでは、データを保存しようとしているユーザーに書き込み権限を明示的に付与するセキュリティ ルールを作成して適用する必要があります。
非認証アクセスの許可 (非推奨)
一時的な回避策として、Firebase コンソールの既存のセキュリティ ルールを次のルールに置き換えることができます:
{ "rules": { ".read": true, ".write": true } }
ただし、このアプローチではデータベースが悪用される可能性があります。データベースの URL を知っている人は誰でもそのデータにアクセスしたり、データを変更したりできる可能性があるためです。運用環境には推奨されません。
データ アクセス前のユーザーのサインイン
より安全な方法として、データベースにアクセスする前にユーザーがサインインしていることを確認してください。 。匿名認証を使用すると、ユーザーに資格情報の提供を要求せずにこれを行うことができます。
firebase.auth().signInAnonymously().catch(function(error) { // Handle errors here });
ユーザーがサインインしたら、イベント リスナーをデータベースにアタッチしてデータ操作を処理し、ユーザーが書き込み権限があります:
firebase.auth().onAuthStateChanged(function(user) { if (user) { // User is signed in // Set required data using useridRef.set(...) } else { // User is signed out } });
アプリケーションを運用環境に移行する前に、データを保護するために適切なセキュリティ対策を実装する必要があることに注意してください。これには、さまざまなユーザーまたはグループに対する特定のアクセス許可を定義するカスタム セキュリティ ルールの作成が含まれます。
以上がデータを Firebase に保存するときに「権限が拒否されました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。