2017-06-05 10 views
1

ユーザのユーザIDのもとでファイアベースにテキストを追加しようとしていますが(32424234)、それはできません。Firebaseデータベース認証

これはfirebase

{ 
    "rules": { 
    "users": { 
     "$uid": { 
     ".read": "$uid == auth.uid", 
     ".write": "$uid == auth.uid" 
     } 
    } 
    } 
} 

の下にこれは私のJavaコードである私の規則セクションです:

public void kullanicikontrol(String kullaniciadi){ 
     mRootRef = new Firebase("https://xxxx.firebaseio.com/users"); 
     Firebase chieldref = mRootRef.child(kullaniciadi); 
     chieldref.setValue("32424234"); 
} 

i」が.read "などのルールを変更した場合:真の" スクリーンショットのような問題はありません

enter image description here

しかし、私はしたくないもの:以下。私は間違っている?

+0

下記のコメントに追加したコードは、「新しい」Firebase SDK(I/O ** 2016 **で起動)を使用しています。あなたの質問のコードはそれより前の古いFirebase SDKを使用しています。新しいSDKの認証は、古いSDKを使用したデータベースアクセスには適用されません。問題を解決するには、データベースコードを更新して新しいSDKを使用するようにしてください:https://firebase.google.com/docs/database/ –

答えて

1

火災ベースでは、.readと.writeは読み書き権限です。これをtrueに設定すると、すべてのユーザーが許可されます。

あなたは、私は、これはあなたを助けることを願っていますhttps://firebase.google.com/docs/auth/web/manage-users

リンク に従うことで、新しいユーザおよび認証を作成することができます。

+0

私はあなたが言及した投稿と少し違っています。 Firebaseユーザー= FirebaseAuth.getInstance()。getCurrentUser(); if(user!= null){ //名前、電子メールアドレス、およびプロフィールphoto URL String name = user.getDisplayName(); 文字列email = user.getEmail(); Uri photoUrl = user.getPhotoUrl(); 文字列uid = user.getUid(); kullanici =新しいデータベース(); kullanici.kullanicikontrol(uid); }それは間違っていますか? – Faruk

+0

Firebaseプロジェクトに固有のユーザID。バックエンドサーバーがある場合は、この値を使用してバックエンドサーバーで認証しないでください。代わりにUser.getToken()を使用してください。 – DreamCoder