In a pot over medium heat, heat oil. Add onions, garlic, and ginger and cook until softened.
Add chicken and cook, stirring occasionally, for about 2 to 4 minutes or until lightly brown and juices run clear.
Add fish sauce and cook, stirring occasionally, for about 1 to 2 minutes.
Add water and bring to a boil, skimming scum that floats on top. Lower heat, cover and simmer for about 15 to 20 minutes or until chicken is cooked through.
Add upo and cook for about 2 to 4 minutes or until tender yet crisp.
Season with salt and pepper to taste.
Add spinach and push down into the broth. Turn off heat and cover until leaves are just wilted. Serve hot.