★★★★★
#앱별 실전 패턴 · claude-code
[prayer_app] 그룹 초대 (딥링크 또는 코드 공유)
기도모임 그룹에 친구 초대. 초대 링크 또는 코드 공유.
#prayer-app#deeplink#invite#sharing
기도모임 그룹에 친구 초대. 초대 링크 또는 코드 공유.
구현:
1. **초대 코드 생성 (Firestore):**
```dart
Future<String> createGroupInviteCode(String groupId) async {
final code = generateRandomCode(6); // "ABC123"
await db.collection('groupInvites').doc(code).set({
'groupId': groupId,
'createdAt': DateTime.now(),
'expiresAt': DateTime.now().add(Duration(days: 30)),
'usageCount': 0,
'maxUsage': 50,
});
return code;
}
```
2. **초대 코드로 그룹 가입:**
```dart
Future<void> joinGroupWithCode(String inviteCode) async {
final inviteDoc = await db.collection('groupInvites').doc(inviteCode).get();
if (!inviteDoc.exists) {
throw '유효하지 않은 코드';
}
final data = inviteDoc.data()!;
final groupId = data['groupId'];
await db.collection('groups').doc(groupId).update({
'members': FieldValue.arrayUnion([currentUserId]),
});
}
```
3. **딥링크 공유:**
```dart
final inviteCode = await createGroupInviteCode(groupId);
final deepLink = 'https://prayer-app.com/group/invite/$inviteCode';
await ShareService.shareText(
text: '기도모임 초대: $deepLink',
subject: '기도모임 그룹 초대',
);
```
4. **앱에서 딥링크 처리 (go_router):**
```dart
GoRoute(
path: '/group/invite/:code',
builder: (context, state) {
final code = state.pathParameters['code']!;
return GroupInviteConfirmScreen(inviteCode: code);
},
)
```
구현해줄까?
쓰는 법 — 위 칸에 본인 값을 채우면 아래 프롬프트에 바로 반영돼요. 복사 버튼을 누르면 채워진 그대로 클립보드에 담기니까, claude-code(또는 본인이 쓰는 AI)에 붙여넣기만 하면 됩니다. 변수가 없으면 그냥 복사해서 쓰세요.

