Firebase-tools: verifyDeveloperNodeModules () falha ao descobrir "firebase-admin"

Criado em 9 mai. 2019  ·  26Comentários  ·  Fonte: firebase/firebase-tools

Assuntos relacionados

1243 e # 1258

[OBRIGATÓRIO] Informações da versão

nó: 8.16.0

firebase-functions: 2.3.0

firebase-tools: 6.9.1 ( NOTA: funciona em 6.8.0)

firebase-admin: 7.3.0

Estou executando isso no Windows 10.

[REQUERIDO] Caso de teste


Um projeto Firebase recém-gerado usando firebase init com funções.

[NECESSÁRIO] Passos para reproduzir

  1. Execute npm run start (ou firebase functions:shell )

[REQUIRED] Comportamento esperado


O emulador inicia corretamente

[REQUERIDO] Comportamento real

Os seguintes registros são mostrados:

!  The Cloud Functions emulator requires the module "firebase-admin" to be installed. This package is in your package.json, but it's not available. You probably need to run "npm install" in your functions directory.
i  functions: Your functions could not be parsed due to an issue with your node_modules (see above)

Você conseguiu implantar suas funções com sucesso?


Sim, a implantação funciona bem. A função implantada (hello world) também

emulator-suite bug

Comentários muito úteis

Este é um bug nas versões firebase-tools 6.9.0 e 6.9.1 . A solução é fazer o downgrade para 6.8.0 por enquanto:

npm install -g [email protected]

ref: https://stackoverflow.com/a/56065094/4319131

Todos 26 comentários

Não consegui descobrir como rotular esse problema, então o rotulei para um ser humano fazer a triagem. Aguente firme.

Passando para firebase-tools, pois é onde a emulação é implementada.

O emulador funciona em [email protected] . Este problema provavelmente está relacionado aos números 1243 e 1258

Enfrentando o mesmo problema:

✔  functions: Using node<strong i="6">@8</strong> from host.
✔  functions: Emulator started at http://localhost:5001
i  functions: Watching "/home/yerzhan/projects/askimam/functions" for Cloud Functions...
⚠  The Cloud Functions emulator requires the module "firebase-admin" to be installed. This package is in your package.json, but it's not available. You probably need to run "npm install" in your functions directory.
i  functions: Your functions could not be parsed due to an issue with your node_modules (see above)
firebase -V
6.9.1
  "dependencies": {
    "firebase-admin": "^7.3.0",
    "firebase-functions": "^2.3.0"
  },

Embora o pacote firebase-admin exista em node_modules.

[2019-05-09T09:19:26.091Z] ----------------------------------------------------------------------
[2019-05-09T09:19:26.093Z] Command:       /home/yerzhan/node-v8.12.0-linux-x64/bin/node /home/yerzhan/node-v8.12.0-linux-x64/bin/firebase emulators:start --debug
[2019-05-09T09:19:26.093Z] CLI Version:   6.9.1
[2019-05-09T09:19:26.093Z] Platform:      linux
[2019-05-09T09:19:26.093Z] Node Version:  v8.12.0
[2019-05-09T09:19:26.094Z] Time:          Thu May 09 2019 15:19:26 GMT+0600 (+06)
[2019-05-09T09:19:26.094Z] ----------------------------------------------------------------------

[2019-05-09T09:19:26.099Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2019-05-09T09:19:26.099Z] > authorizing via signed-in user
[2019-05-09T09:19:26.100Z] > refreshing access token with scopes: ["email","https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","openid"]
[2019-05-09T09:19:26.100Z] >>> HTTP REQUEST POST https://www.googleapis.com/oauth2/v3/token  
 <request body omitted>
[2019-05-09T09:19:26.891Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=utf-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 09 May 2019 09:19:26 GMT, server=scaffolding on HTTPServer2, cache-control=private, x-xss-protection=0, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="46,44,43,39", accept-ranges=none, transfer-encoding=chunked
[2019-05-09T09:19:26.901Z] >>> HTTP REQUEST GET https://cloudresourcemanager.googleapis.com/v1/projects/azan-kz-ask-imam  

[2019-05-09T09:19:28.625Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 09 May 2019 09:19:28 GMT, server=ESF, cache-control=private, x-xss-protection=0, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, server-timing=gfet4t7; dur=923, alt-svc=quic=":443"; ma=2592000; v="46,44,43,39", accept-ranges=none, transfer-encoding=chunked
i  Starting emulators: ["functions"]
✔  functions: Using node<strong i="5">@8</strong> from host.
[2019-05-09T09:19:28.637Z] >>> HTTP REQUEST GET https://mobilesdk-pa.googleapis.com/v1/projects/674391970261:getServerAppConfig  

[2019-05-09T09:19:29.356Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 09 May 2019 09:19:29 GMT, server=ESF, cache-control=private, x-xss-protection=0, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="46,44,43,39", accept-ranges=none, transfer-encoding=chunked
✔  functions: Emulator started at http://localhost:5001
i  functions: Watching "/home/yerzhan/projects/askimam/functions" for Cloud Functions...
[2019-05-09T09:19:29.813Z] Functions runtime initialized.
[2019-05-09T09:19:29.813Z] Disabled runtime features: undefined
⚠  The Cloud Functions emulator requires the module "firebase-admin" to be installed. This package is in your package.json, but it's not available. You probably need to run "npm install" in your functions directory.
i  functions: Your functions could not be parsed due to an issue with your node_modules (see above)

Tenho a mesma solução e encontrei:
Você pode usar o comando alias como este: "yarn serve" ou "npm serve"
Ele irá chamar do packages.json, no bloco "scripts"

O mesmo problema aqui! Tentei encontrar uma solução alternativa durante 3 horas, mas sem sucesso.
Hoje pensei apenas em adicionar firebase-admin ao npm global, mas não tenho certeza se deve funcionar.
Tentaremos sua sugestão @namcoder

@diogolessa Fazer downgrade para firebase-tools 6.8.0 também corrige o problema. Não é uma opção para você?

Claro, pode ser ... Parece uma abordagem melhor. Porém, seria bom ter todas as versões mais recentes funcionando normalmente para iniciantes como eu. Obrigado @ExtraBB

O mesmo aqui ... Acontece no linux também.

EDIT: Downgrading "fix" confirmado.

Eu estava tendo esse problema, removi firebase-tools e reinstalei [email protected].

Mesmo problema ... o downgrade é a única maneira de fazer funcionar

Apenas configuração que funciona atualmente
firebase-functions: 2.3.0
firebase-tools: 6.8.0
firebase-admin: 7.3.0

Olá pessoal, desculpe o problema que esse problema está causando. Por enquanto, recomendamos fazer o downgrade para 6.8.0 enquanto trabalhamos em um patch.

Este problema é causado pelo uso do require.resolve nativo em verifyDeveloperNodeModules() onde slowRequireResolve deve ser usado. O outro uso do nativo require.resolve também terá o mesmo problema.

Isso não foi detectado em nossos testes porque require.resolve resolveu para as dependências de desenvolvimento de firebase-tools durante a execução dos testes, então fez parecer que não havia diferença de comportamento entre require.resolve e slowRequireResolve

Este é um bug nas versões firebase-tools 6.9.0 e 6.9.1 . A solução é fazer o downgrade para 6.8.0 por enquanto:

npm install -g [email protected]

ref: https://stackoverflow.com/a/56065094/4319131

Obrigado pelas atualizações. O downgrade para 6.8.0 funcionou para nós

No momento, isso não está documentado na documentação do firebase para executar funções localmente e definitivamente precisa estar se uma correção ainda não estiver pronta.

Certo pessoal, acabamos de juntar uma correção para isso que sairá em 6.9.2 hoje. Podemos esperar por uma correção para # 1265 antes de lançar, mas se isso não funcionar, ele sairá como está. Assim que for eliminado, fecharei o bug, mas reabra se o problema ainda estiver acontecendo para você.

Corrigido por # 1263

A versão 6.9.2 foi lançada com esta correção.

Obtendo o seguinte erro, perguntando-me se ele está relacionado a este novo lançamento:

AssertionError [ERR_ASSERTION]: missing path
    at Module.require (module.js:595:3)
    at require (internal/module.js:11:18)
    at InitializeFirebaseAdminStubs

atualizei de 6.8.0 para 6.9.2 e agora estou vendo:

funções: Usando node @ 8 do host.

! O emulador do Cloud Functions requer que o módulo "firebase-functions-test" seja instalado como uma dependência de desenvolvimento. Para corrigir isso, execute "npm install --save-dev firebase-functions-test" no diretório de funções.
funções i: suas funções não puderam ser analisadas devido a um problema com seus node_modules (veja acima)

Estou recebendo muitos erros depois de atualizar para 6.9.2.

  1. https://github.com/firebase/firebase-tools/issues/1106
  2. https://github.com/firebase/firebase-tools/issues/1265
    e mais alguns bugs depois de tentar eliminar os existentes.
    esta atualização está muito mais quebrada. teve que fazer o downgrade para 6.8.0

A versão 6.9.2 foi lançada com esta correção.

A correção não pegou. Estamos vendo esse erro em "firebase-tools": "^6.10.0" .

O emulador do Cloud Functions requer que o módulo "firebase-admin" seja a versão> 7.0.0, portanto, sua versão é muito antiga. Você provavelmente pode corrigir isso executando "npm install firebase -admin @ latest " no diretório de funções.

Removemos ^ de nossa dependência de package.json por enquanto para evitar a atualização automática na instalação.

"firebase-tools": "^6.8.0", // before
"firebase-tools": "6.8.0", // after

@diogolessa Fazer downgrade para firebase-tools 6.8.0 também corrige o problema. Não é uma opção para você?

Obrigado funcionou para mim

Esta página foi útil?
0 / 5 - 0 avaliações