Swift использует интервалы / временные метки в секундах с дробной частью, указывающей субсекундные детали.Большинство других платформ используют миллисекунды.Это означает, что разница между значениями в 1000 раз выше, что объясняет, почему сравнение не работает.
Самое простое решение - умножить или разделить на 1000. Например,
if (1000*Number(child.val()['endDate']) >= new Date().getTime()) {
child.ref.set(null)
}