Ваша проблема в том, что вы не используете обещания должным образом. Ваш код внизу «return ob2» выполняется непосредственно перед возвратом чего-либо. Измените ваш код на приведенный ниже код, и он должен работать. Или еще лучше использовать async await.
return admin.firestore().collection("doctors").doc(data.type).listCollections().then(function (doc) {
// console.log(doc);
var arr=[];
let ob2;
for(let coll of doc) {
return admin.firestore().collection("doctors").doc(data.type).collection(coll.id).doc("docdetail").get().
then((x)=>{
arr.push(x.data());
obj.users=arr;
console.log(obj);
return obj;
})
};
});