Что означает неправильный заголовок Metadata-Flavor в GoogleAuth? - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь написать в firestore из функции onCall firebase

functions.js

const functions = require('firebase-functions');
const admin = require('firebase-admin');


admin.initializeApp();



console.log('initialing functions at ' , new Date().toString())


exports.getLinks = functions.runWith({ timeoutSeconds: 540 }).https.onCall( (data,context) => {

    console.log('starting to get links ' , new Date().toString())
    console.log('data' , data.query, data.limit, data.country, data.uid)
    console.log('context auth', context.auth, 'context.auth.uid', context.auth.uid)
    // is there anything like admin.setCredentials(context.auth) necessary here?
    const queries = admin.firestore().collection('queries');
    let uid = data.uid
    console.log('uid', uid);
    console.log('queries ref', queries)
    //probably when trying to write here is not being allowed
    queries.doc(uid).set({LinksArrayLength: 'starting'})
        .then( r => console.log('writing to firestore 1 result', r))
        .catch( err => console.error('writing to firestore 2 error', err))

Вывод на консоль выглядит так

начало получать ссылки пт 31 мая 2019 19:01:10 GMT-0300 (GMT-03: 00)

данные продаются везде 2 ком fwfwqe контекстная аутентификация { uid: 'f23oij2ioafOIJOeofiwjOIJ', токен: { iss: 'https://securetoken.google.com/was98oinr-fa4c9', aud: 'was234r-f32c9', auth_time: 1559327744, user_id: 'f23oij2ioafOIJOeofiwjOIJ', sub: 'f23oij2ioafOIJOeofiwjOIJ', iat: 1559338208, эксп: 1559341808, электронная почта: 'awef3h@gmail.com', email_verified: false, firebase: {identity: [Object], sign_in_provider: 'password'}, uid: 'f23oij2ioafOIJOeofiwjOIJ' } } context.auth.uid f23oij2ioafOIJOeofiwjOIJ uid f1EMxzwjJlTaH3u7RAYsySx0MZV2 запросы ref CollectionReference { _firestore: Firestore { _settings: { идентификатор проекта: «ххх», firebaseVersion: «7.0.0», libName: 'gccl', libVersion: '1.3.0 fire / 7.0.0' },

а затем запрещенный запрос на запись в firestore?

writing to firestore 2 error Error: Unexpected error determining execution environment: Invalid response from metadata service: incorrect Metadata-Flavor header.
>      at GoogleAuth.<anonymous> (H:\nprojetos\whats_app_sender\firebase_sender\vue_sender\wa_sender\functions\node_modules\google-auth-library\build\src\auth\googleauth.js:164:23)
>      at Generator.throw (<anonymous>)
>      at rejected (H:\nprojetos\whats_app_sender\firebase_sender\vue_sender\wa_sender\functions\node_modules\google-auth-library\build\src\auth\googleauth.js:20:65)
>      at processTicksAndRejections (internal/process/task_queues.js:89:5)

Как я могу обеспечить отправку request.auth.uid в запрос на запись в пожарном депо?

Правила хранения файлов

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;//: if request.auth.uid != null;
// even when commented and allowing all requests still giving the error //message
    }
  }
}

Даже при полном разрешении продолжает выдавать ошибку.

Я пытаюсь написать в firestore, чтобы обновить клиентскую часть, когда что-то записывается в коллекции («запросы») ... так, чтобы клиент получал уведомление о прогрессе функции ... Есть ли лучший способ сделать это также?

На стороне клиента код выглядит так

на стороне клиента

fireApp.firestore().collection('queries').doc(this.getUser.uid).onSnapshot(snap => {
                    debugger
                    console.log('snap', snap)

                    snap.exists ?
                    snap.docChanges().forEach(async change => {
                        if (change.type === "modified") {
                         _vue.updating = true // the function is in progress

1 Ответ

0 голосов
/ 01 июня 2019

Решены Требуется только инициализация propper

const credential = require('./xxxxx.json')

admin.initializeApp({credential: admin.credential.cert(credential),
databaseURL: "https://xxx.xxx.firebaseio.com"
});

эта ссылка (https://www.youtube.com/watch?v=Z87OZtIYC_0) объясняет, как правильно его инициализировать

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