У меня есть приложение для Android, которое отправляет список телефонных номеров в облачную функцию в моем проекте.Затем сервер должен получить список всех телефонных номеров пользователей, получить пересечение (одинаковые элементы) между двумя массивами, а затем отправить обратно в приложение идентификатор пользователя Firebase Auth пользователей в массиве пересечений.
Вот что я придумал: -
// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require('firebase-functions');
// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp();
const auth = admin.auth();
const _ = require('underscore');
exports.getUids = functions.https.onCall((data, context) => {
return auth.listUsers().then(userRecords => {
var allPhoneNumbers = [];
userRecords.users.forEach(user => allPhoneNumbers.push(user.phoneNumber));
var phoneNumbers = _.intersection(allPhoneNumbers, data);
var Uids = [];
//the next line is where I am nesting promises
phoneNumbers.forEach(phoneNumber => auth.getUserByPhoneNumber(phoneNumber).then(user => Uids.push(user.uid)));
return Uids;
}).catch(error => console.error(error));
});
Я никогда не программировал на JavaScript, но пытаюсь.Прошло уже 2 дня, и я просто не могу понять, как обойти это.Я пробовал как минимум 10 разных способов.Мне действительно трудно справиться с обещаниями.Любая помощь приветствуется.