Что я делаю
Итак, я подключил два приложения к одной и той же базе данных, одно использует базу данных в реальном времени, и я успешно перенес некоторые данные из реального временибаза данных в облачное хранилище с помощью облачных функций, а другое приложение - облачное хранилище.
Аутентификация 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;
}
}
}
но, к сожалению, ни один из вышеперечисленных не может решить проблему. Я все еще получаю то же исключение даже после публикации новых правил
ОБНОВЛЕНИЕ
снимок экрана с текущими правилами пожарного депо

Код Котлина
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: отсутствуют или недостаточные разрешения.
может кто-нибудь, пожалуйста, помогите мне, я буду очень благодарен вам