希望大家都知道这个类,用于在刷新通知令牌时刷新通知令牌,我们从这个类中获取刷新的令牌,来自以下方法.
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
Run Code Online (Sandbox Code Playgroud)
要使用它,我想实现FCM,我扩展了MyClass FirebaseInstanceIdService
但是,显示不推荐使用FirebaseInstanceIdService
有没有人知道这个?,我应该使用什么方法或类来代替这个来获取刷新令牌,因为这是不推荐使用的.
我正在使用 : implementation 'com.google.firebase:firebase-messaging:17.1.0'
我检查了相同的文件没有提到这个.:FCM设置文件
UPDATE
这个问题已被解决.
谷歌不赞成FirebaseInstanceService,
我问问题是找到方法,然后我知道我们可以从FirebaseMessagingService获取令牌,
和以前一样,当我问问题文档没有更新但是现在谷歌文档更新以获取更多信息时,请参阅此谷歌文档:FirebaseMessagingService
旧版自:FirebaseInstanceService(已弃用)
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + refreshedToken);
}
Run Code Online (Sandbox Code Playgroud)
新来自:FirebaseMessagingService
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NEW_TOKEN",s);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我检查过这个答案: https ://stackoverflow.com/a/34834772/13519865
它告诉我们删除这一行
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
按照要求删除该行即可完成构建,但我无法使用 Firebase (ofc!),它导致了一个新错误,它告诉我添加该行: https ://stackoverflow.com/a/40085096/13519865
所以,我在这里陷入了循环。此处添加了相关代码示例https://github.com/Cyber avater/A.Reader
android firebase google-play-services android-gradle-plugin google-cloud-platform
我试图围绕着可观察者.我喜欢observables解决开发和可读性问题的方式.在我读到的时候,好处是巨大的.
关于HTTP和集合的可观察量似乎是直截了当的.我怎样才能将这样的东西转换为可观察的模式.
这是来自我的服务组件,用于提供身份验证.我希望它能像Angular2中的其他HTTP服务一样工作 - 支持数据,错误和完成处理程序.
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(function(firebaseUser) {
// do something to update your UI component
// pass user object to UI component
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
Run Code Online (Sandbox Code Playgroud)
这里的任何帮助将不胜感激.我唯一的替代解决方案是创建EventEmitters.但我想这是在服务部门做事的一种可怕方式
我正在测试新的崩溃工具:https: //firebase.google.com/docs/crash/
完成这些步骤后,应用程序启动并崩溃说:
05-18 17:28:18.870 28743 28743 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5156)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: …Run Code Online (Sandbox Code Playgroud) 我正在探索新的Firebase Firestore,它包含一个名为的数据类型reference.我不清楚这是做什么的.
reference是实际参考,我可以将它用于查询吗?例如,我可以有一个直接指向用户的引用,而不是将userId存储在文本字段中吗?我可以使用此用户参考进行查询吗?编译我的项目时,我收到以下错误消息:
Program type already present: com.google.android.gms.internal.measurement.zzabn Message{kind=ERROR, text=Program type already present: com.google.android.gms.internal.measurement.zzabn, sources=[Unknown source file], tool name=Optional.of(D8)}
Run Code Online (Sandbox Code Playgroud)
要么
D8: Program type already present: com.google.android.gms.internal.measurement.zzabo
Run Code Online (Sandbox Code Playgroud)
使用Gradle Log中的以下堆栈跟踪
at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)\\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) …Run Code Online (Sandbox Code Playgroud) java android firebase android-studio firebase-realtime-database
我在应用程序启动时遇到以下异常.
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:4993)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536)
at android.app.ActivityThread.access$1300(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5214)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.ActivityThread.installProvider(ActivityThread.java:4978)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536)
at android.app.ActivityThread.access$1300(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
at android.os.Handler.dispatchMessage(Handler.java:99)
at …Run Code Online (Sandbox Code Playgroud) 我想为Firebase创建多个云功能,并从一个项目同时部署它们.我还想将每个函数分成一个单独的文件.目前我可以创建多个函数,如果我将它们都放在index.js中,例如:
exports.foo = functions.database.ref('/foo').onWrite(event => {
...
});
exports.bar = functions.database.ref('/bar').onWrite(event => {
...
});
Run Code Online (Sandbox Code Playgroud)
但是我想将foo和bar放在单独的文件中.我试过这个:
/functions
|--index.js (blank)
|--foo.js
|--bar.js
|--package.json
Run Code Online (Sandbox Code Playgroud)
foo.js在哪里
exports.foo = functions.database.ref('/foo').onWrite(event => {
...
});
Run Code Online (Sandbox Code Playgroud)
和bar.js是
exports.bar = functions.database.ref('/bar').onWrite(event => {
...
});
Run Code Online (Sandbox Code Playgroud)
有没有办法在不将所有函数放在index.js中的情况下完成此操作?
我们被要求在说明中设置Facebook的OAuth重定向URI(如下所示),以设置Google Firebase以使用Facebook登录.
我们点击了我们应用的每个菜单.它在哪里?它会被称为不同的东西吗?
...确保您的OAuth重定向URI(例如my-app-12345.firebaseapp.com/__/auth/handler)在Facebook for Developers网站的Facebook应用设置页面中列为您的OAuth重定向URI之一产品设置> Facebook登录配置.
使用Firebase而不是MongoDB有什么好处?
我知道Firebase是一个拥有自己的API的云服务,但我觉得Mongo可能会给我更大的控制权.