ホームページ > ウェブフロントエンド > jsチュートリアル > データを Firebase に保存するときに「権限が拒否されました」エラーが発生するのはなぜですか?

データを Firebase に保存するときに「権限が拒否されました」エラーが発生するのはなぜですか?

Linda Hamilton
リリース: 2024-10-27 06:34:29
オリジナル
969 人が閲覧しました

Why am I getting a

データ保存に関する 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート