Невозможно получить данные из хранилища даже после изменения правил базы данных, чтобы разрешить все операции чтения и записи. - PullRequest
0 голосов
/ 11 декабря 2019

Что я делаю

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

Аутентификация firebase работает нормально для обоих приложений, первое приложение успешно извлекает данные из базы данных в реальном времени

В чем моя проблема

но проблема в том, что второе приложение не может получить данные из облачного хранилища, поэтому я успешно перехватил исключение, и оно говорит: «com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: отсутствуют или недостаточные разрешения."

Что я сделал, чтобы решить

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

Предыдущее правило пожарного депо

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

Измененные правила пожарной базы

, поэтому я попробовал оба приведенных ниже правила одно за другим, чтобы решить проблему

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

и

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

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

ОБНОВЛЕНИЕ

снимок экрана с текущими правилами пожарного депо

enter image description here

Код Котлина

class Toppers {
    private val firestore:FirebaseFirestore by lazy{
        FirebaseFirestore.getInstance()
    }

    private val toppersList = mutableListOf<Topper>()
    private val toppers = MutableLiveData<List<Topper>>()

    init {
        toppers.value = toppersList
    }

    fun getToppers():LiveData<List<Topper>>
    {
        firestore.collection("Toppers").get().addOnCompleteListener { task ->

            if(task.isSuccessful)
            {
                toppersList.clear()
                for(topper in task.result!!)
                {
                    Log.d("(Saquib)","data is fetched "+topper.get("name").toString())
                    toppersList.add(
                        Topper(topper.get("name").toString(),
                               topper.get("percentage").toString(),
                               topper.get("imgurl").toString(),
                               topper.get("resulturl").toString(),
                               topper.get("rollno").toString(),
                               topper.get("schoolname").toString(),
                               topper.get("session").toString(),
                               topper.get("stream").toString(),
                               topper.get("standard").toString())
                    )
                }
            }
            else
            {
                Log.d("(Saquib)","unable to fetch the data "+task.exception?.cause.toString())
            }
        }.addOnCompleteListener {
            toppers.value = toppersList
        }
        return toppers
    }
}

Журналы Android

(Saquib): невозможно получить данные io.grpc.StatusException: PERMISSION_DENIED: отсутствуют или недостаточные разрешения.

может кто-нибудь, пожалуйста, помогите мне, я буду очень благодарен вам

1 Ответ

0 голосов
/ 11 декабря 2019

Зайдите в базу данных -> Правила ->

 allow read, write: if false; to true;

Но имейте в виду, это означает, что в вашей базе данных пожарного хранилища нет никакой защиты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...