Estou recebendo o erro
gettingdocuments.com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Permissões ausentes ou insuficientes.
para o código abaixo na instrução else
db.collection("users")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
s(document.getId() + " => " + document.getData());
}
} else {
s("Error getting documents."+ task.getException());
}
}
});
android
firebase
google-cloud-firestore
S Rekhu
fonte
fonte
Respostas:
Simplesmente funciona para mim.
Vá em Banco de Dados -> Regras ->
Alterar
allow read, write: if
falso; para verdadeiro;fonte
Vá para Banco de Dados -> Regras :
Em seguida, alterou as regras abaixo
para baixo
fonte
Portanto, no meu caso, eu tinha as seguintes regras de banco de dados:
Como você pode ver, existe um
uid
campo nostory
documento para marcar o proprietário.Então, em meu código, eu estava consultando todas as histórias (Flutter):
E falhou porque eu já adicionei algumas histórias de diferentes usuários. Para corrigi-lo, você precisa adicionar uma condição à consulta:
Mais detalhes aqui: https://firebase.google.com/docs/firestore/security/rules-query
EDIT: a partir do link
fonte
As respostas votadas acima são perigosas para a saúde do seu banco de dados. Você ainda pode disponibilizar seu banco de dados apenas para leitura e não para escrita:
fonte
Se você tentar no aplicativo Java Swing.
Go To
Firebase Console
>Project Overview
>Project Settings
Em seguida, vá para a guia Contas de serviço e clique em Gerar nova chave privada.
Você obterá um arquivo .json, coloque-o em um caminho conhecido
Em seguida, vá para Propriedades do meu computador, Configurações avançadas do sistema, Variáveis de ambiente.
Crie um novo
GOOGLE_APPLICATION_CREDENTIALS
valor de variável de caminho com seu caminho para o arquivo json.fonte
npm i - salvar firebase @ angular / fire
em app.module certifique-se de importar
nas importações
em regras de banco de dados em tempo real, certifique-se de ter
nas regras do Cloud Firestore certifique-se de ter
fonte
certifique-se de que seu banco de dados não está vazio nem que sua consulta seja para coleções que não existem
fonte
Além disso, você pode receber este erro se a referência da coleção do seu código não corresponder ao nome da coleção no firebase.
Por exemplo, o nome da coleção no firebase é
users
, mas sua referência a ele comdb.collection("Users")
oudb.collection("user")
É sensível a maiúsculas e minúsculas também.
Espero que isso ajude alguém
fonte
add
ouset
, mas pela pergunta é umget
pedido. Já experimentei isso antesVerifique se a conta de serviço foi adicionada a
IAM & Admin
https://console.cloud.google.com/iam-admin/iam com uma função apropriada, como Editorfonte
Se alguém chegar aqui tentando acessar o Firestore com uma conta de serviço:
Resolvi esse problema concedendo à conta de serviço a
Service Account User
função, além daCloud Datastore User
função nas configurações de IAM do GCP.fonte
Neste momento, junho de 2020, por padrão, o firebase é definido por tempo. Defina o horário para atender às suas necessidades.
Observação: seu banco de dados ainda está aberto a todos. Eu sugiro, por favor, leia a documentação e configure o DB da maneira que for útil para você.
fonte
o problema é que você tentou ler ou gravar dados no banco de dados em tempo real ou no firestore antes de o usuário ser autenticado. tente verificar o escopo do seu código. espero que tenha ajudado!
fonte
Tive esse erro com o Firebase Admin, a solução foi configurar o Firebase Admin corretamente seguindo este link
fonte
Para mim, era o problema da data. Atualizou e o problema foi resolvido.
Permitir leitura / gravação:
Edit: Se você ainda está confuso e não consegue descobrir qual é o problema, basta dar uma olhada na seção de regras em seu console do Firebase.
fonte
limite de tempo pode ter acabado
há mudança de data para hoje nesta linha:
fonte
https://console.firebase.google.com
Desenvolver -> Banco de dados -> Regras -> definir leitura, gravação -> verdadeiro
fonte
Suas regras devem ser assim para este caso porém a mensagem diz que não é a forma sugerida, mas se você fizer isso poderá fazer inserções sem erro de permissão
fonte