Вы ничего не читаете, потому что на самом деле ничего не пишете. С этим битом кода:
newCollab.set({songs: {}});
Сервер ничего не пишет, потому что нет никаких значений за любым из ключей. Если ключ не имеет значений, он просто не существует в базе данных реального времени. Пустой объект, например, передаваемый вами, не имеет ключей или значений. Кроме того, генерируемый случайный push-идентификатор фактически генерируется на клиенте, на сервере, поэтому, даже если он выглядит «законным», это не означает, что сервер что-то сделал.
Почему бы вам не попробовать вместо этого написать фактическое значение?
newCollab.set({songs: "an actual value"});
Кроме того, вы должны проверить значение в консоли Firebase, чтобы убедиться, что оно действительно записало то, что вы ожидали.