```go if _, err := p.Cli.WriteRelationships(ctx, &...
# spicedb
a
Copy code
go
if _, err := p.Cli.WriteRelationships(ctx, &v1.WriteRelationshipsRequest{Updates: []*v1.RelationshipUpdate{
    {
        Operation: v1.RelationshipUpdate_OPERATION_TOUCH,
        Relationship: &v1.Relationship{
            Resource: &v1.ObjectReference{
                ObjectId:   rel.ResourceId,
                ObjectType: rel.ResourceType,
            },
            Relation: rel.Relation,
            Subject: &v1.SubjectReference{
                Object: &v1.ObjectReference{
                    ObjectId:   rel.SubjectId,
                    ObjectType: rel.SubjectType,
                },
            },
            OptionalCaveat: caveat,
        },
    },
},
}); err != nil {
    return fmt.Errorf("failed to add relation [%+v]: %w", rel, err)
}
And this is how I'm trying to fetch the newly created relationship:
Copy code
go
resp, err := p.Cli.ReadRelationships(ctxWithTimeout, &v1.ReadRelationshipsRequest{
    Consistency: nil,
    RelationshipFilter: &v1.RelationshipFilter{
        ResourceType:       rel.ResourceType,
        OptionalResourceId: rel.ResourceId,
        OptionalRelation:   rel.Relation,
        OptionalSubjectFilter: &v1.SubjectFilter{
            SubjectType:       rel.SubjectType,
            OptionalSubjectId: rel.SubjectId,
        },
    },
    OptionalLimit:  0,
    OptionalCursor: nil,
})
if err != nil {
    return fmt.Errorf("failed to show relationships: %w", err)
}
for {
    var item *v1.ReadRelationshipsResponse
    item, err = resp.Recv()
    if err == io.EOF {
        break
    }
    if err != nil {
        return fmt.Errorf("failed to read relationship from response: %w", err)
    }
    pbRel := item.GetRelationship()
    if pbRel.GetResource().GetObjectId() == rel.ResourceId && pbRel.GetResource().GetObjectType() == rel.ResourceType {
        return nil
    }
}