2016-02-09 2 views
-1

Как подключить модуль конечных точек движка Google к firebase?Как интегрировать модуль конечных точек движка Google с помощью firebase?

Я прочитал это https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio, но он использует «For App Engine Java Servlet Module».

Нужен ли нам сервер приложений для модуля конечных точек java-модуля для Google, поскольку нам нужен сервер приложений для GCM?

+0

Вы должны попытаться внести свой заголовок в сосредоточенный вопрос. – Tom

+0

Сэр я редактировал свой титул. Я хочу использовать API-интерфейс API Google в качестве сервера и firebase в качестве хранилища баз данных. Я не уверен, можем ли мы подключить модуль конечной точки приложения к firebase. –

+0

Вы хотите, чтобы база данных firebase для доступа к базе данных в режиме реального времени ?, поскольку остальная часть средств, предоставляемых базой данных firebase, уже доступна с хранилищем данных App Engine. –

ответ

1

Конечные точки, GCM и Firebase - все это независимые вещи.

Когда вы говорите сервер приложений, я думаю, вы говорите о приложении GAE, поэтому вы должны заметить, что Firebase не работает с GAE (вам нужно оставить дополнительное прослушивание потоков, что не работает с GAE).

Если вы новичок в этих вещах, я предлагаю вам начать с одного за раз. Вы можете создать приложение, которое использует Firebase без каких-либо других. (Но будьте осторожны - Firebase - это проприетарная услуга, которая довольно дорогая.)

Или, забудьте о Firebase и напишите приложение, которое ведет переговоры с GAE, используя либо конечные точки, либо просто простой сервлет.

+0

Firebase имеет довольно приличный бесплатный уровень: https://firebase.google.com/pricing/ – claytronicon

0

Вы можете интегрировать Cloud Endpoints с Firebase. Хотя Datastore может быть лучшим выбором в зависимости от вашей ситуации, мне нужно было интегрироваться с существующей firebase. Ниже приведен пример того, как это сделать. Это происходит из рабочего примера, я изменил некоторые имена.

Примечание: этот пример inits в firebase приложения каждый раз, вы должны сделать проверку, чтобы увидеть, если firebase приложение уже инициализирован или второй раз, конечная точка ударила, вы получите сообщение об ошибке,

<dependency> 
      <groupId>com.google.endpoints</groupId> 
      <artifactId>endpoints-framework</artifactId> 
      <version>${endpoints.framework.version}</version> 
     </dependency> 

<dependency> 
      <groupId>com.google.firebase</groupId> 
      <artifactId>firebase-admin</artifactId> 
      <version>5.3.0</version> 
     </dependency> 


package com.example.mypackage; 

import com.google.firebase.FirebaseApp; 
import com.google.firebase.FirebaseOptions; 
import com.google.firebase.auth.FirebaseCredentials; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 
import com.google.firebase.database.*; 

import java.io.IOException; 
import java.io.FileNotFoundException; 
import java.io.FileInputStream; 
import java.io.InputStream; 

import java.util.logging.Logger; 
import java.util.logging.Level; 

public class MyClass { 
    private final static Logger LOGGER = Logger.getLogger(Echo.class.getName()); 
    public static void main() { 
     try { 
      FileInputStream serviceAccount = new FileInputStream("WEB-INF/my-service-account.json"); 
      FirebaseOptions options = new FirebaseOptions.Builder()    
    .setCredential(FirebaseCredentials.fromCertificate(serviceAccount)) 
      .setDatabaseUrl("https://my-project.firebaseio.com/") 
      .build(); 
      FirebaseApp.initializeApp(options); 

      final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
      DatabaseReference ref = database.getReference("/foo"); 

      ref.addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        String post = dataSnapshot.toString(); 
        LOGGER.log(Level.INFO, post); 
        System.out.println(post); 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 
        LOGGER.log(Level.INFO, "cancel"); 

        // ... 
       } 
      }); 
      ref.setValue("bar"); 

     } catch (Exception e) { 
      // some error handling code here 
      LOGGER.log(Level.SEVERE, e.toString(), e); 
     } 
    } 
} 
Смежные вопросы