2014-09-12 4 views
1

Firebase의 간단한 로그인을 사용하여 사용자가 음악 파일을 업로드하는 방법은 무엇입니까?Firebase 간단한 로그인 및 외부 서버 연결

필자는 Firebase의 데이터베이스에 오디오 파일을 저장하는 것에 대해 생각하는 것조차도 이해하지 못하기 때문에 외부 PHP 서버에 저장할 수 있기를 바랍니다.

그래서 Firebase의 간단한 로그인 시스템을 사용하여 사용자가 외부 서버를 인증 할 수 있는지 여부를 묻는 질문이 생깁니다.

Using NodeJs with Firebase - Security ... 나는 훌륭한 통찰력을 보여 주지만, 외부 서버에 큰 파일을 업로드하는 방법은 무엇입니까?

답변

3

answer you linked의 기술 역시 상황에 맞게 작동하므로 PHP와 Firebase REST APIs으로 번역하면됩니다. 또한 REST API는 실시간이 아니므로 폴링 할 수있는 일종의 태스크 대기열을 추가해야합니다.

여러분의 프로그램은 이런 식 흐름 것 :

  1. 사용자 로그를 중포 기지에 Simple Login
  2. 사용자의 쓰기와 그들이 (security rules 기준) 수있는 유일한 곳으로. 또한 사용자는 항목을 작업 대기열에 씁니다.
  3. PHP 서버는 모든 사용자의 비밀 장소를 읽을 수있는 토큰으로 연결됩니다.
  4. PHP 서버는 새로운 작업을 찾기 위해 잠시 후 firebase를 폴링합니다. 새로운 작업이 있으면 사용자를 확인하고 해당 사용자가 데이터를 게시 할 수있게합니다.

이 모든 것이 꽤 복잡 할 것입니다. PHP의 실행 모델은 실시간 시스템에 잘 적합하지 않으며,

내가 강력하게 당신은 몇 가지 다른 옵션을 고려하는 것이 좋습니다 : 당신은 클라우드 플랫폼을 사용하고

  • 을, 중포 기지, 당신의 실시간 물건, 그래서 filepicker.io
  • 과 같은 바이너리를위한 클라우드 서비스를 고려해보십시오. 실제로 파일을 직접 호스트하려면 node.js와 같은 실시간 서비스를 사용하십시오. 해당 작업 대기열을 구성하는 노력을 줄일 수 있습니다.
+0

답장을 보내 주셔서 감사합니다.하지만 여전히 혼란 스럽습니다. 사용자가 실제로 음악 파일을 제출할 위치/시간 및 보안 규칙이 원격 서버의 음악과 상호 작용하는 사용자에게 어떤 영향을 미칩니 까? ... 간단히 말해서 외부 서비스가 음악 파일을 어떻게 받습니까? – Joseph

+0

내 혼란의 일부는 firebase에 서버 사이드 코드가 없다는 것입니다. 따라서 서버 측 코드를 제공하려면 상호 작용할 다른 서버가 필요합니다. 외부 서버가 사용자가 인증되었음을 알 수있는 방법을 알고 싶어합니다. 주어진 답을 가지고 있다고 가정하면 ... 외부 서버가 연결되기를 기다리는 동안 음악 파일은 어디에 저장됩니까? 이 예에서 이메일에 대한 정보는 firebase 데이터베이스에 저장되었지만 올바르게 이해하면 오디오 파일에는 작동하지 않습니다. – Joseph

+0

음, 바이너리 컨텐츠를 인코딩하여 Firebase에 직접 저장할 수 있습니다. 그것을 위해 실제로 설계된 것은 아니지만 작동합니다. 여기에 대한 자세한 내용은 http://stackoverflow.com/questions/13955813/how-can-i-view-and-store-images-in-firebase에서 확인할 수 있습니다. 그 외에도 보안을 강화하려는 부분 : 쓰기 또는 읽기.읽는 것만으로도 누구나 쓸 수있는 CDN URL을 쓰고 안전하게 저장할 수 있습니다. 쓰기 보안을 위해 좀 더 복잡해지고 공급자에 따라 다릅니다. – mimming