Развертывание внутреннего сервера для android покупок в приложении для classytaxi? - PullRequest
1 голос
/ 18 апреля 2020

Я изо всех сил пытаюсь внедрить android пользовательскую подписку в android. Я использую учебник Google Dev для Java покупок в приложении:

https://github.com/android/play-billing-samples/tree/master/ClassyTaxiJava

В последнем разделе мне нужно развернуть внутренний сервер, как описано здесь:

https://github.com/android/play-billing-samples/tree/master/ClassyTaxiServer

Что я сделал:

  1. клонировал файлы и папки сервера в учебнике в мой P C
  2. Открыл CMD и направил в папку
  3. , вошедшую в firebase с помощью firebase login -> OK
  4. добавил проект firebase с помощью firebase use -add -> ОК
  5. инициировал функциональную команду firebase functions:config:set app.package_name="com.mypackage.app" -> ОК
  6. deploy firebase -> ОШИБКА

Ошибка, как показано ниже:

=== Deploying to 'api-2341234***'...

i  deploying functions, hosting
Running command: npm --prefix "$RESOURCE_DIR" run lint
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path C:\Users\vafa\Firebase\server\package.json
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\vafa\Firebase\server\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\vafa\AppData\Roaming\npm-cache\_logs\2020-04-18T22_21_16_430Z-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code4294963238

Я заметил, что после развертывания в папке проекта создается папка «сервер», которой нет внутри папки сервера. Я попытался поместить пакет. json файл внутри него и развернуть снова, но он не работал.

*** Это также упоминалось в git как проблема здесь и кто-то еще ответил:

Примечания: В firebase. json, https://github.com/android/play-billing-samples/blob/master/ClassyTaxiServer/firebase.json Нет каталога 'server' или 'web', firebase не может развертывать функции и хостинг с эти папки.

Моя папка проекта Firebase: enter image description here

Папка моего сервера: enter image description here

Моя папка sr c: enter image description here

Ошибка после изменения структуры папки:

Error: spawn npm --prefix "%RESOURCE_DIR%" run lint ENOENT
    at notFoundError (C:\Users\vafaeene\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:6:26)
    at verifyENOENT (C:\Users\vafaeene\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:40:16)
    at ChildProcess.cp.emit (C:\Users\vafaeene\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:27:25)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
Emitted 'error' event on ChildProcess instance at:
    at ChildProcess.cp.emit (C:\Users\vafaeene\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:30:37)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) {
  code: 'ENOENT',
  errno: 'ENOENT',
  syscall: 'spawn npm --prefix "%RESOURCE_DIR%" run lint',
  path: 'npm --prefix "%RESOURCE_DIR%" run lint',
  spawnargs: []
}

Ошибка: ошибка функции перед развертыванием: команда прервана с нулевой код выхода1

1 Ответ

1 голос
/ 18 апреля 2020

посмотрите на этот код, брат, я использую его в моих функциях firebase, код лежит в index.ts

import * as admin from 'firebase-admin';

const serviceAccount = require('../common/serviceAccountKey.json');

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "https://<project-id>.firebaseio.com",
    storageBucket: "<project-id>.appspot.com"
});

ниже моя структура каталогов

functions
      ├── common
      |     └── serviceAccountKey.json
      └── src
           └── index.ts

надеюсь, это поможет. спросите, если у вас возникли проблемы;)

[ОБНОВЛЕНИЕ]

проблем с вашим firebase.json нет. на самом деле он ищет нужную папку. положить пакет. json в правильное место, где он хранится неправильно. он должен храниться вне папки сервера. где находится папка sr c, поэтому это должна быть обновленная структура каталогов:

   myProjectFolder
      ├──server
      |    ├── common
      |    |     └── serviceAccountKey.json
      |    ├── src
      |    |    └── index.ts
      |    └──package.json, tsconfig.json and other files
      └── firebase.json

обновите структуру папок до этой и git команду firebase deploy --only functions из myProjectFolder

пакет. json для windows [РЕДАКТИРОВАТЬ]

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint", // observe here $RESOURCE_DIR has been replaced with %RESOURCE_DIR%
      "npm --prefix \"%RESOURCE_DIR%\" run build" // same change as above
    ],
    "source": "server"
  },
  "hosting": {
    "public": "web",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [ ]
  }
}

попробуйте это и прокомментируйте

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