База данных Firebase Аутентификация телефона В доступе отказано - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь написать приложение, и у меня есть проблема безопасности, которую я не могу решить, и мне нужна помощь.Я использую аутентификацию телефона пользователя на firebase, и она работает нормально.Теперь я хочу, чтобы пользователю auth был предоставлен идентификатор для сохранения в базе данных, и он работает.

Но проблема в том, что я использую этот код для записи в базу данных для нового пользователя:

{
  "rules": {

      ".write": "auth == null ",
      ".read": "auth == null "              
  }
}

этот код предназначен для регистрации нового пользователя:

  FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
   Firebase Ref = new Firebase( "database address" );
     Firebase usersRef = Ref.child( "Users" ).child( "user_id" );
       usersRef.setValue( user.getUid() );

когда я использую это правило. Проверка подлинности запрещена:

{
  "rules": {

      ".write": "auth != null ",
      ".read": "auth != null "              
  }
}

, но мой пользователь уже зарегистрирован, и я получаю его идентификатор и форму телефонаАутентификация пользователя, как я могу решить эту проблему безопасности?

D/FirebaseAuth: Notifying id token listeners about user ( b3bizXzmH7XQfXWNvHCMVXzDHSx2 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/PhoneAuthActivity: signInWithCredential:success
D/FirebaseAuth: Notifying id token listeners about user ( b3bizXzmH7XQfXWNvHCMVXzDHSx2 ).
D/FirebaseApp: Notifying auth state listeners.
               Notified 0 auth state listeners.
D/PhoneAuthActivity: signInWithCredential:success
W/RepoOperation: setValue at /Users/user_id failed: FirebaseError: Permission denied
W/RepoOperation: setValue at /Users/user_id failed: FirebaseError: Permission denied
D/FirebaseAuth: Notifying id token listeners about user ( b3bizXzmH7XQfXWNvHCMVXzDHSx2 ).
D/FirebaseApp: Notifying auth state listeners.
D/FirebaseApp: Notified 0 auth state listeners.
D/PhoneAuthActivity: signInWithCredential:success
W/RepoOperation: setValue at /Users/user_id failed: FirebaseError: Permission denied

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Я решил свою проблему, ответ:

   FirebaseUser user = task.getResult().getUser();
          mDatabase =FirebaseDatabase.getInstance().getReference();
                 String current_uid =user.getUid();
                mDatabase.child( "Users" ).child( "uid" ).setValue( current_uid );
0 голосов
/ 16 мая 2018

попробуй

{
"rules": {

  ".write": "auth == true",
  ".read": "auth == true"              
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...