proof that a countable union of countable sets is countable, why is $\sf ZF$ not enough? Without assuming the axiom of choice, a countable union of countable sets isn't necessarily countable. In the following proof though, I don't understand when anything that isn't in the axioms of $\sf ZF$ used.
Let $X$ be a countable set of countable sets. Since $X$ is countable it can be ordered: $X = \{G_1, G_2 ,...\}$.
We'll construct a function $F$ that maps each element of $X$ to a bijective function from itself to $\Bbb N$.
Let $f_0 = \emptyset$. We'll recursively define $f_i$: Since $G_{i+1}$ is countable, there exists a bijective function $h :G_{i+1} \to \Bbb N$. Define $$f_{i+1} = f_i \cup \langle G_{i+1}, h\rangle$$
Let $$A = \{f_i \mid i\in\Bbb N \}$$
Since $A$ is a countable set of compatible functions, the set $$F = \bigcup A$$ is a function, with $$Dom(F) = \bigcup \{Dom(f)\mid f\in A\} = X$$
Once $F$ is constructed, creating an injective function $f:\bigcup X \to \Bbb N$ is easy, for example by mapping elements to numbers of the form $2^i3^j$.
I know that the problem with the proof is the construction of $A$, but I don't understand where. When ordering $X$ we chose a bijective function out of infinitely many, so why can't we do the same for $G_{i+1}$?
 A: You are conflating, and confusing, two different notions of choice.
First, to say that a set $G$ is countable means:

There exists a bijection from $G$ to $\mathbb N$.

There is a principle of logic that says when something exists we may choose it, assign it a name, and use that named thing in a proof. That does not require the axiom of choice. The trouble is when you want to name infinitely many of those choices all at the same time, perhaps labelling them as elements of a sequence of choices. Without the axiom of choice there is no guarantee that this can be done.
So, how does one formalize this so as to apply the axiom of choice?
To reword what was said, to say that each of the sets $G_i$ in the given sequence is a countable set means that its set of bijections $G_i \mapsto \mathbb N$ is not empty. We can define this set of bijections, as one term in a sequence of sets:
$$\mathcal B_i = \{f : G_i \to \mathbb N \mid \text{$f$ is a bijection}\}
$$
We know that each term of this sequence is a nonempty set $\mathcal B_i$. We now have a function which assigns to each natural number $i \in \mathbb N$ a nonempty set $\mathcal B_i$. The axiom of choice guarantees the existence of a function $i \mapsto f_i$, defined for $i \in \mathbb N$, so that $f_i \in \mathcal B_i$, in other words so that $f_i : G_i \to \mathbb N$ is a bijection.
