발신자가 수신자에게 메시지를 보내면 데이터베이스로 firebase를 사용합니다. firebase 데이터베이스가 메시지로 업데이트됩니다.Swift - Firebase 백엔드에서 사용자 별 메시지 그룹화 방법
메시지 데이터 senderID, ReceiverID는 물론 SenderName, TimeStamp 및 typeOfMedia가 포함됩니다.
나는 방법 내가 몇 메시징 애플리케이션에 근무하고 약간의 성공을 했어 효과적으로
발신자가 수신자에게 메시지를 보내면 데이터베이스로 firebase를 사용합니다. firebase 데이터베이스가 메시지로 업데이트됩니다.Swift - Firebase 백엔드에서 사용자 별 메시지 그룹화 방법
메시지 데이터 senderID, ReceiverID는 물론 SenderName, TimeStamp 및 typeOfMedia가 포함됩니다.
나는 방법 내가 몇 메시징 애플리케이션에 근무하고 약간의 성공을 했어 효과적으로
수신 측 및 그룹 메시지에이 메시지를 보내려고합니다. 이것이 내가 Firebase 데이터 구조를 구현 한 방법입니다.
direct-messages:
user-A-UID:
user-B-UID:
message-1-ID:
senderId: "user-A-UID",
senderName: "User A",
text: "hello, User B!",
timestamp: 1490570058,
status: "read"
message-2-ID:
senderId: "user-B-UID",
senderName: "User B",
text: "well hello, user A. How are you?",
timestamp: 1490570212,
status: "sent"
user-B-UID:
user-A-UID:
message-1-ID:
senderId: "user-A-UID",
senderName: "User A",
text: "hello, User B!",
timestamp: 1490570058,
status: "read"
message-2-ID:
senderId: "user-B-UID",
senderName: "User B",
text: "well hello, user A. How are you?",
timestamp: 1490570212,
status: "sent"
그래서이 코드 무엇을 의미 하는가
: 사용자 간의 직접 메시지의 경우,이처럼 보이는 항목이? 자, ref.child("direct-messages").child(uid)
에 .childAdded
청취자를 사용하고 let uid = FIRAuth.auth()?.currentUser?.uid
을 사용할 수 있습니다.
메시징 UI에서 보내기 단추를 누르면 let messageId = ref.child("direct-messages").child(uid).childByAutoId()
과 같은 작업을 수행하십시오. 이렇게하면 메시지 당 고유 한 식별자가 제공됩니다. 이것을 다음과 같이 사용하십시오. ref.child("direct-messages").child(uid).child(messageId).updateChildValues(newMessagePacket)
이제 누구에게도 글을 쓰고 싶지 않으므로 그에 따라 권한을 설정해야합니다. 은 $uid == auth.uid
일 때만 쓸 수 있어야합니다. 이에 대한 자세한 정보는 this page을 확인하십시오.
그러나 사용자 B가 새 자녀에 대해서만 direct-messages.user-B-UID
의 말을 듣는 경우 사용자 A가 메시지를 보내면 업데이트를받을 수 있습니다 (위의 사용 권한에 따라 direct-messages.user-A-UID.$messageID
에만 기록됨)? 이 작업을 수행하는 가장 좋은 방법은 firebase-admin 라이브러리를 사용하여 노드를 실행하는 작은 Amazon EC2 인스턴스를 사용하여 업데이트를 수신하고 데이터를 direct-messages.user-B-UID.$messageID
에 복제하는 것입니다.
이것은 2 개의 프로덕션 메시징 응용 프로그램에서 사용하는 기술입니다. 파이어베이스의 핵심은 데이터 복제와 권한 같은 것 같습니다. 이것은 나를 위해 잘 작동했지만 더 이상 질문이 있으면 알려주십시오.
무엇을 시도 했습니까? 작동하지 않는 것은 무엇입니까? [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)을 참조하십시오. – Jay