使用FirebaseOptions.Builder()编译setServiceAccount()的时间错误

时间:2016-05-28 09:11:21

标签: android gradle firebase

我正在使用我的Android应用程序,使用Firebase云消息发送推送通知。我正在设置我的服务器,参考指南https://firebase.google.com/docs/server/setup#prerequisites

我的项目级build.gradle就像:

dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.0.0'
}

App level build.grade:

dependencies {   
compile 'com.firebase:firebase-client-android:2.5.2'
compile 'com.firebase:geofire:1.1.0'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'
compile 'com.google.firebase:firebase-server-sdk:[3.0.0,)'
compile 'com.google.firebase:firebase-core:9.0.0'

}

我也在控制台上创建了服务帐户凭据,但我在初始化SDK时引用https://firebase.google.com/docs/server/setup#add_the_sdk

FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount
(new  FileInputStream("path/to/serviceAccountCredentials.json"))
.setDatabaseUrl("https://databaseName.firebaseio.com/")
.build();

我收到编译错误:(116,21)错误:找不到符号方法setServiceAccount(FileInputStream)

我检查了很多地方,但我无法找到我做错了什么。任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

在您的服务器项目中,您只需要使用依赖项:
com.google.firebase:firebase-server-sdk:[3.0.0,)并删除:

compile 'com.firebase:firebase-client-android:2.5.2'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'
compile 'com.google.firebase:firebase-core:9.0.0'

第一个是服务器sdk,而其他是客户端sdk,如果你试图一起使用它们会有冲突。

答案 1 :(得分:1)

您包含的Firebase数据库SDK版本与其他Firebase功能版本不同:

compile 'com.firebase:firebase-client-android:2.5.2'

如果您将其更改为:

compile 'com.google.firebase:firebase-database:9.0.0'

它会更好。

有关详细信息,请参阅我复制上述行的Firebase documentation for Android developers