Kindless祖先查询golang中的不同实体种类

According to the documentation, it should be possible to retrieve an ancestor and all of its descendants, regardless of their kind.

In my implementation, I have a different kind of ancestor and descendant. The following codes however always returns the error "invalid entity type":

q := datastore.NewQuery("").Ancestor(tomKey)
t := q.Run(ctx)
for {
    var x interface{}
    _, err := t.Next(&x)
    if err == datastore.Done {
        break
    }
    if err != nil {
        log.Errorf(ctx, "Error fetching entity: %v", err)
        break
    }
}

It seems that the call to t.Next(&x) expects a specific type instead of an empty interface. Would somebody please help me to resolve this problem?

I don't know the documentation is wrong, but you can use datastore.PropertyList to fetch arbitrary value. like this:

    var v datastore.PropertyList
    key, err := iter.Next(&v)
    ...

    props, err := v.Save()
    ...

See this docs for more information.