在Firebase中,当我们注册时,它会为每个firebase Url提供一个API密钥.但它在消费应用中使用的位置是什么?fireBase API不提供任何提供API密钥的方法.
安全性:什么阻止任何人继续将任何对象写入给定的firebase Url?如何管理授权?
我试图在firebase中托管一个应用程序,它给我的错误
Error: Error parsing triggers: Cannot find module 'firebase'
Try running "npm install" in your functions directory before deploying.
Run Code Online (Sandbox Code Playgroud)
我已npm install多次执行命令,但没有什么新东西.
请帮忙
关于这个模糊的错误代码已经有几个问题,但没有人为我解决这个问题,所以我会再试一次.首先,这是用于登录的样板代码.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestServerAuthCode("web app client ID copied from Dev API Console", false)
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, this).addApi(Auth
.GOOGLE_SIGN_IN_API, gso).build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
Run Code Online (Sandbox Code Playgroud)
使用此代码,我得到一个对话框,可以选择适当的用户帐户.好极了!但是,然后我在onActivityResult中获取了一个已取消的代码,因此我检查了logcat并注意了标题中的错误消息.然后我搜索有这个问题的其他人,但是我无法弄清楚我的问题是什么.
那么让我们从其他帖子中查看常见问题.
对于可搜索性,在标题中的logcat错误消息之后,我得到以下logcat打印.
你有错误的OAuth2相关配置,请检查.详细错误:INVALID_AUDIENCE
android oauth firebase firebase-authentication google-signin
我的团队最近讨论过这个问题,似乎无法确定实际/预期的行为:
如果您有以下安全规则:
match /categories/{document=**} {
allow update: if request.auth.uid != null
&& request.resource.data.firstName is string
&& request.resource.data.lastName is string;
}
Run Code Online (Sandbox Code Playgroud)
然后使用以下数据从前端到/ categories /创建更新语句:
{
firstName: 'A valid firstName'
}
Run Code Online (Sandbox Code Playgroud)
那么安全规则应该通过还是失败?
在参考文档中,它说
开发人员提供的数据显示在request.resource.data中,这是一个包含字段和值的映射.资源中存在的请求中未提供的字段将添加到request.resource.data
相关问题:
{age: 28} 问题3有更多细节(架构问题) 假设你有这样的模型:
interface Category {
firstName: string;
lastName: string;
age?: int;
groupId?: string;
}
Run Code Online (Sandbox Code Playgroud)
现在我们创建一个像这样的安全规则:
match /categories/{document=**} {
allow update: if request.auth.uid != null
&& request.resource.data.firstName is string
&& request.resource.data.lastName is string;
&& request.resource.data.age is int;
&& request.resource.data.groupId is string; …Run Code Online (Sandbox Code Playgroud) 我试图启用"高级配置",在新Android Studio 2.4 preview 2的,但我得到的生成错误的消息日志:
Information:Gradle tasks [:app:assembleRelease]
Error:Execution failed for task ':app:transformClassesWithProfilers-transformForRelease'.
> java.lang.IllegalArgumentException (no error message)
Information:BUILD FAILED
Information:Total time: 2.47 secs
Information:1 error
Information:0 warnings
Information:See complete output in console
Run Code Online (Sandbox Code Playgroud)
我正在尝试在现有项目上执行此操作.当我尝试一个新项目时,它没有问题.有谁知道错误说的是什么或如何解决它?
我将我的一个应用程序转换为新的Firestore.我正在做一些事情,比如在点击按钮上保存文档,然后在onSuccess监听器中进行不同的活动.
我还使用Firestore保存操作返回任务的事实,使用以下方法将任务组合在一起Tasks.whenAll:
val allTasks = Tasks.whenAll(
createSupporter(supporter),,
setStreetLookup(makeStreetKey(supporter.street_name)),
updateCircleChartForUser(statusChange, createMode = true),
updateStatusCountForUser(statusChange))
allTasks.addOnSuccessListener(this@SignUpActivity, successListener)
allTasks.addOnFailureListener(this@SignUpActivity, onFailureListener)
Run Code Online (Sandbox Code Playgroud)
最后,我从成功保存中获取文档ID并将其存储在首选项或本地数据库中供以后使用(在...内onSuccessListener)
一切都很好.直到失去网络连接.然后一切都崩溃了,因为任务永远不会完成,onSuccess/onFailure/onComplete监听器永远不会被调用.所以该应用程序只是挂起.
我通过在每次保存之前检查网络可用性来解决这个问题,然后通过创建没有任何监听器的任务来解决这个问题.我还使用UUID生成器在本地生成文档ID.
这个,BTW,不是应用程序与旧的firebase一起工作的方式.在这种情况下,一切都在离线时运行良好,我看到文件在应用程序上线时同步.
我对Firestore的解决方法似乎是一个可怕的黑客.有没有人想出更好的解决方案?
在没有连接的 情况下,在没有使用cloud firestore脱机调用addOnCompleteListener的情况下,请参阅有关插入/删除文档回调的相关Firestore数据库
android firebase firebase-realtime-database google-cloud-firestore
有没有办法检查firejs的firestore中是否存在子集合?
目前我doc.exists用于文档,但我需要检查文档中是否存在子列,以便写入一些数据.
mFirebaseAdapter = new FirebaseRecyclerAdapter<Restaurant, FirebaseRestaurantViewHolder>
(Restaurant.class, R.layout.restaurant_list_item, FirebaseRestaurantViewHolder.class,
mRestaurantReference)
Run Code Online (Sandbox Code Playgroud)
我喜欢1000个元素/对象mRestaurantReference.如果我使用上面的代码,我肯定会遇到性能问题所以我必须对它进行分页.那么如何使用分页数据FirebaseRecyclerAdapter呢?
我正在尝试使用重新安装Android应用程序登录facebook.最初我使用Google注册并成功将其与firebase链接.
但是,当我尝试使用Facebook时,它会给出一个
FirebaseAuthUserCollisionException
Run Code Online (Sandbox Code Playgroud)
我在Firebase文档中读到了您可以这样做的内容
FirebaseUser prevUser = currentUser;
currentUser = auth.signInWithCredential(credential).await().getUser();
// Merge prevUser and currentUser accounts and data
// ...
Run Code Online (Sandbox Code Playgroud)
但这里await()方法不再存在.在搜索了一下后,我发现了这个解决方案
Tasks.await(mAuth.signInWithCredential(credential)).getUser();
Run Code Online (Sandbox Code Playgroud)
但是当获取已经链接的当前用户时,这也会出错.我该怎么做才能解决这个问题?
当我使用这段代码时:
firestore().collection("item").add({...item, created: firebase.database.ServerValue.TIMESTAMP})
Run Code Online (Sandbox Code Playgroud)
它创建条目{".sv" : "timestamp"}< - 实际单词"timestamp"
firebase ×9
android ×5
node.js ×2
api-key ×1
facebook ×1
firebaseui ×1
java ×1
javascript ×1
oauth ×1