Я новичок в Android и пытаюсь развернуть функции firebase, но покажу некоторую ошибку, как решить эту проблему, пожалуйста, помогите мне.

Структура базы данных Firebase

Таблица пользователей

  • пользователей
    • user_id
      • device_token: user_device_token
      • Имя: user_name

Таблица уведомлений

  • уведомления
    • to_user_id
      • идентификатор_уведомления
        • from: from_user_id

ошибка

Index.js

'use strict'

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);


/*
 * 'OnWrite' works as 'addValueEventListener' for android. It will fire the function
 * everytime there is some item added, removed or changed from the provided 'database.ref'
 * 'sendNotification' is the name of the function, which can be changed according to
 * your requirement
 */

exports.sendNotification = functions.database.ref('/notifications/{user_id}/{notification_id}').onWrite(event => {


	  /*
	   * You can store values as variables from the 'database.ref'
	   * Just like here, I've done for 'user_id' and 'notification'
	   */

	  const user_id = event.params.user_id;
	  const notification_id = event.params.notification_id;

	  console.log('We have a notification from : ', user_id);

	  /*
	   * Stops proceeding to the rest of the function if the entry is deleted from database.
	   * If you want to work with what should happen when an entry is deleted, you can replace the
	   * line from "return console.log.... "
	   */

	  if(!event.data.val()){

			return console.log('A Notification has been deleted from the database : ', notification_id);

		}

	  /*
	   * 'fromUser' query retreives the ID of the user who sent the notification
	   */

	  const fromUser = admin.database().ref(`/notifications/${user_id}/${notification_id}`).once('value');

	  return fromUser.then(fromUserResult => {

			const from_user_id = fromUserResult.val().from;

			console.log('You have new notification from  : ', from_user_id);

			/*
			 * The we run two queries at a time using Firebase 'Promise'.
			 * One to get the name of the user who sent the notification
			 * another one to get the devicetoken to the device we want to send notification to
			 */

			const userQuery = admin.database().ref(`/Users/${from_user_id}/Name`).once('value');
			const deviceToken = admin.database().ref(`/Users/${user_id}/device_token`).once('value');

			return Promise.all([userQuery, deviceToken]).then(result => {

			  const userName = result[0].val();
			  const token_id = result[1].val();

			  /*
			   * We are creating a 'payload' to create a notification to be sent.
			   */

			  const payload = {
					notification: {
					  title : "New Friend Request",
					  body: `${userName} has sent you request`,
					  icon: "default",
					
					}
				};

			  /*
			   * Then using admin.messaging() we are sending the payload notification to the token_id of
			   * the device we retreived.
			   */

				  return admin.messaging().sendToDevice(token_id, payload).then(response => {

						console.log('This was the notification Feature');

					});

			});

		});

	});

** ошибка показа cmd **

C: \ Users \ TahirAliAwan \ Desktop \ Function> развертывание firebase === Развертывание на videochat-96f75 ... я развертываю функции Выполняемая команда: npm --prefix% RESOURCE_DIR% run lint функции @ lint C: \ Users \ TahirAliAwan \ Desktop \ Function \ functions eslint. C: \ Users \ TahirAliAwan \ Desktop \ Function \ functions \ index.js 61:11 предупреждение Избегайте вложенности обещаний обещание / отсутствие вложенности 84:14 предупреждение Избегайте вложенности обещаний обещание / отсутствие вложенности Ошибка 84:69. Каждый then () должен возвращать значение или выдавать обещание / всегда-возврат ✖ 3 проблемы (1 ошибка, 2 предупреждения) npm ERR! Windows_NT 10.0.10586 npm ERR! argv "C: \ Program Files \ nodejs \ node.exe" "C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js" "--prefix" "C: \ Users \ TahirAliAwan \ Desktop \ Функция \ функции "" запустить "" lint " npm ERR! узел v6.11.5 npm ERR! npm v3.10.10 npm ERR! код ELIFECYCLE npm ERR! functions @ lint: eslint . npm ERR! Статус выхода 1 npm ERR! npm ERR! Ошибка при выполнении скрипта functions @ lint 'eslint.'. npm ERR! Убедитесь, что у вас установлена ​​последняя версия node.js и npm. npm ERR! Если вы это сделаете, это, скорее всего, проблема с пакетом функций, npm ERR! не с самим npm. npm ERR! Сообщите автору, что это не работает в вашей системе: npm ERR! eslint. npm ERR! Вы можете получить информацию о том, как открыть проблему для этого проекта, с помощью: npm ERR! функции ошибок npm npm ERR! Или, если он недоступен, вы можете получить их информацию через: npm ERR! npm owner ls функции npm ERR! Скорее всего, выше есть дополнительный вывод журнала. npm ERR! Пожалуйста, включите следующий файл с любым запросом в службу поддержки: npm ERR! C: \ Users \ TahirAliAwan \ Desktop \ Function \ npm-debug.log Ошибка: функция перед развертыванием ошибка: команда завершена ненулевым кодом выхода1

0
Tahiraliawan 26 Фев 2018 в 18:53

1 ответ

Лучший ответ

После совета @PeterHaddad и моих усилий я решил эту проблему, удалив эту строку .then(response => { console.log('This was the notification Feature'); и обновите nodejs. Спасибо всем.

0
Tahiraliawan 8 Мар 2018 в 07:54