Multi-functional Ni3C cocatalyst/g-C3N4 nanoheterojunctions for robust photocatalytic H2 evolution under visible light