error: la propiedad 'getChildren' no existe en el tipo 'DataSnapshot'

... Lo hace en la documentación P:

I import * as firebase from "firebase"; en la parte superior del archivo. La función uid-fetching funciona. No le gusta la sintaxis del bucle for por alguna razón ...

También probé la sintaxis:for (DataSnapshot child : parent.getChildren()) { } y luego el compilador me dice que se espera un punto y coma en la línea donde comienza el ciclo for.

getMessages() {
    return new Promise(function (resolve) {
        return firebase.auth().onAuthStateChanged(function (user) {
            if (user) {
                resolve(user.uid);
            }
        });
    }).then((result) => {
        return firebase.database().ref('mailboxes/' + result).once('value').then((snapshot) => {
            let messageArray;
            for (let snap of snapshot.getChildren()) {
                messageArray.push(snap.val());
                console.log('snapshot key:' + snap.key);
                console.log('snapshot val:' + snap.val());
            };
            return messageArray;
        });
    });
}