So I'm making an app with firebase and to subscribe all the members of a given group to a specific group topic, I need to create a function that returns an array of all of the groups of a given user.
I have a mongo folder which just returns all the groups where either the "member", "admin" or "owner" field contains their userId, for example mine is "9b8bcd57-06eb-471c-8910-c5b944d02431". However the functions that return the groups you are an owner, admin or member of are separate functions.
I'm quite new to NodeJs and haven't quite grasped promises yet. But I found an example online
Here's what I've tried :
var p1 = new Promise ((resolve, reject) => { resolve( myMongo.retrieveDocuments('groups', { member: userId }) ) })
var p2 = new Promise ((resolve, reject) => { resolve( myMongo.retrieveDocuments('groups', { owner: userId }) ) })
var p3 = new Promise ((resolve, reject) => { resolve( myMongo.retrieveDocuments('groups', { admin: userId }) ) })
return Promise.all([p1, p2, p3])
}
This fetch returns an array with a structure like so.
{
[
    [
        {
            "_id": "60e8341fe765650015db561f",
            "groupName": "Club One",
            "owner": [
                "0bcbb92d-6276-4118-8576-9d5f5c4ed43b"
            ],
            "timestamp": 1625830382197,
            "premiumStatus": false,
            "member": [
                "f2171431-627e-47a3-a65f-4abf48d361b6",
                "9b8bcd57-06eb-471c-8910-c5b944d02431"
            ],
            "admin": [],
            "pending": [],
            "description": ""
        },
        {
            "_id": "6117beac025a040016655483",
            "groupName": "Club 2",
            "owner": [
                "c5c921b5-3ce7-450d-bf39-af027d07f5a2"
            ],
            "timestamp": 1628945997774,
            "premiumStatus": false,
            "member": [
                "9b8bcd57-06eb-471c-8910-c5b944d02431"
            ],
            "admin": [],
            "pending": []
        }
    ],
    [
        {
            "_id": "611e613e6d85ac0016f57e5d",
            "groupName": "People",
            "owner": [
                "9b8bcd57-06eb-471c-8910-c5b944d02431"
            ],
            "timestamp": 1629380919105,
            "premiumStatus": false,
            "member": [],
            "admin": [],
            "pending": []
        }
    ],
    [
        {
            "_id": "60f6dc43be54fb0015c16634",
            "groupName": "UCD",
            "owner": [
                "79154a25-d747-441f-a8e3-4f06a2fbdaac"
            ],
            "timestamp": 1626790968639,
            "premiumStatus": false,
            "member": [],
            "admin": [
                "2c7c2bc9-e1c3-4665-bcd9-2844fae6ac93",
                "f8b4c3b7-0df8-4a14-a1fb-41c363337653",
                "ea4d3222-caa2-40d5-80d8-54ce9a360c2b",
                "9b8bcd57-06eb-471c-8910-c5b944d02431"
            ],
            "pending": [],
            "description": "Diamond by 2022"
        },
        {
            "_id": "6116d1767e80f300166368e7",
            "groupName": "Club",
            "owner": [
                "91dfdca2-6c2e-4784-91ed-d8ad4ffd8e25"
            ],
            "timestamp": 1628885342939,
            "premiumStatus": false,
            "member": [],
            "admin": [
                "9b8bcd57-06eb-471c-8910-c5b944d02431"
            ],
            "pending": [],
            "description": "Ahhhhhhh"
        }
    ]
]
As you can see, this function returns all the promises together in one large parent array. My problem is that I need for the inner array brackets ('[' & '],') to disappear. I've tried split. But i'm not sure it works in node, and I've searched this site and many other ones for answers. So far I've heard of a method called "Flattening an array" but haven't found any proper examples.
Just to conclude.
Here's what I have :
[
   [ thing1, thing2, thing3],
   [ thing4, thing5, thing6],
   [ thing7, thing8, thing9]
]
And here's what I need :
[ thing1, thing2, thing3, thing4, thing5, thing6, thing7, thing8, thing9 ]
 
    