code: func getDatastoreNamespaces(c context.Context) ([]string, error) {
  	q := ds.NewQuery("__namespace__").KeysOnly(true)
  
  	// Query our datastore for the full set of namespaces.
  	var namespaceKeys []*ds.Key
  	if err := ds.GetAll(c, q, &namespaceKeys); err != nil {
  		logging.WithError(err).Errorf(c, "Failed to execute namespace query.")
  		return nil, err
  	}
  
  	namespaces := make([]string, 0, len(namespaceKeys))
  	for _, nk := range namespaceKeys {
  		// Add our namespace ID. For the default namespace, the key will have an
  		// integer ID of 1, so StringID will correctly be an empty string.
  		namespaces = append(namespaces, nk.StringID())
  	}
  	return namespaces, nil
  }
docs: // getDatastoreNamespaces returns a list of all of the namespaces in the
  // datastore.
  //
  // This is done by issuing a datastore query for kind "__namespace__". The
  // resulting keys will have IDs for the namespaces, namely:
  //	- The default namespace will have integer ID 1.
  //	- Other namespaces will have string IDs.