@Nivco С последней версией это теперь работает. Но, пожалуйста, обратите внимание, что ошибка в размещенном примере кода, пропущенная инструкция возврата, должна быть "return firebase.auth (). SignInWithCustomToken ..." Спасибо

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

Он работает без проблем на RTDB, но не на Firestore.

У меня есть попытка с этими правилами

service cloud.firestore {
  match /databases/{database}/documents {

    match /init/{ID=**} {
        allow read, write: if true;
    }

    match /test/{ID=**} {
        allow read, write: if false;
    }
  }
}

И это

const admin = require('firebase-admin');
const functions = require('firebase-functions');
const FieldValue = require('firebase-admin').firestore.FieldValue;

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: 'https://******.firebaseio.com',
    databaseAuthVariableOverride: {
        uid: 'my-worker',
    },
});

const db = admin.firestore();

exports.onTestRights = functions.firestore
    .document('init/{initID}')
    .onCreate((event) => {
        const initID = event.params.initID;
        return db.collection('test').doc(initID).set({'random key': 'random value'}).then(()=>{
            console.log('working');
            return;
        }).catch((err) =>{
            console.log('error: ', err);
            return;
        });
    });

Но он все еще пишет так, в то время как это должно быть "разрешение отказано"

Кто-нибудь знает, нормально ли это (или еще не имплантировано) в пожарном депо или я что-то не так понял?

Редактировать: Конечно, моя конечная цель - не с этими правилами, а только предоставить права на запись / чтение для некоторых документов / коллекций с помощью (allow read, write: if request.auth.uid == 'my-worker';)

Edit2: Я хотел бы использовать правила безопасности для проверки, как транзакция, если нет изменений во время процессаиспользуя эту модель

Ответы на вопрос(1)

Ваш ответ на вопрос